虚拟机搭建Hadoop集群环境-CentOS篇

文章目录

    • Linux环境安装
    • 虚拟机环境准备
      • 虚拟机克隆
      • 修改虚拟机IP
      • 修改主机名
      • 创建普通用户
      • 重启虚拟机
      • 使用Xshell远程访问
    • 集群搭建
      • 安装 JDK
      • 安装 Hadoop
      • 关闭防火墙
      • 其它节点虚拟机克隆
      • 配置 SSH 无密钥登录
      • 编写文件集群分发脚本
      • 修改Hadoop配置为集群配置
    • 集群时间同步

Linux环境安装

具体步骤参考博客。

虚拟机环境准备

虚拟机克隆

在前一步骤中准备好安装了CentOS 7 的虚拟机,克隆一个虚拟机出来,过程如下图:

虚拟机搭建Hadoop集群环境-CentOS篇_第1张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第2张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第3张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第4张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第5张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第6张图片

修改虚拟机IP

  • 克隆完成后,启动bigdata-101虚拟机,使用root用户登录,修改虚拟机的IP地址

    虚拟机搭建Hadoop集群环境-CentOS篇_第7张图片

    • 编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,修改成如下内容:

      vim /etc/sysconfig/network-scripts/ifcfg-ens33
      # 修改内容如下
      TYPE=Ethernet
      BOOTPROTO=static # 设置静态IP
      NAME=ens33
      DEVICE=ens33
      ONBOOT=yes
      IPADDR=192.168.1.101 # 自定义IP地址
      PREFIX=24
      GATEWAY=192.168.1.2
      DNS1=192.168.1.2
      

虚拟机搭建Hadoop集群环境-CentOS篇_第8张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第9张图片

  • 设置虚拟机虚拟网络编辑器,编辑->虚拟网络编辑器->VMnet8->更改配置:

虚拟机搭建Hadoop集群环境-CentOS篇_第10张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第11张图片

将子网IP按下图调整,最后点击 NAT 设置:



![在这里插入图片描述](https://img-blog.csdnimg.cn/20210222181122128.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIwNzUzODM=,size_16,color_FFFFFF,t_70)

虚拟机搭建Hadoop集群环境-CentOS篇_第12张图片

  • 设置VMnet8 属性,保证默认网关、首先DNS服务器和Linux环境配置一致

虚拟机搭建Hadoop集群环境-CentOS篇_第13张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第14张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第15张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第16张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第17张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第18张图片

修改主机名

  • 查看当前主机名

    hostname
    

在这里插入图片描述

  • 执行vim /etc/sysconfig/network,输入以下内容:

    HOSTNAME=bigdata101
    

虚拟机搭建Hadoop集群环境-CentOS篇_第19张图片

  • 执行 vim /etc/hosts,加入以下内容:

    192.168.1.101 bigdata101
    192.168.1.102 bigdata102
    192.168.1.103 bigdata103
    

虚拟机搭建Hadoop集群环境-CentOS篇_第20张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第21张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第22张图片

创建普通用户

  • 创建一个普通用户用于日常操作,用户名为bigdata,为方便学习记忆,密码也可设置为bigdata

    # 添加用户
    useradd bigdata
    # 设置密码
    passwd bigdata
    

虚拟机搭建Hadoop集群环境-CentOS篇_第23张图片

  • 给新添加的 hadoop用户配置 root 权限:

    # 添加写入模式
    chmod u+w /etc/sudoers
    # 在 root ALL=(ALL)	ALL 下添加一行内容
    bigdata ALL=(ALL)        NOPASSWD: ALL
    # 重新将文件设置为只读
    chmod u-w /etc/sudoers
    

虚拟机搭建Hadoop集群环境-CentOS篇_第24张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第25张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第26张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第27张图片

重启虚拟机

  • 为使配置生效,重启虚拟机:

    reboot
    
  • 使用bigdata用户登录:

    虚拟机搭建Hadoop集群环境-CentOS篇_第28张图片

  • 验证虚拟机IP及主机名:

    # 查看当前主机IP
    ifconfig
    # 查看主机名
    hostname
    

虚拟机搭建Hadoop集群环境-CentOS篇_第29张图片

使用Xshell远程访问

在 VMware 上直接操作 Linux 用户体验不友好,故使用 Xshell来远程访问虚拟机。

  • 修改Windows 主机映射文件(Win10 系统文件路径:C:\Windows\System32\drivers\etc)hosts,添加如下内容:
192.168.1.101 bigdata101
192.168.1.102 bigdata102
192.168.1.103 bigdata103

虚拟机搭建Hadoop集群环境-CentOS篇_第30张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第31张图片

  • 使用Xshell新建会话,输入相关内容:

虚拟机搭建Hadoop集群环境-CentOS篇_第32张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第33张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第34张图片
虚拟机搭建Hadoop集群环境-CentOS篇_第35张图片

集群搭建

安装 JDK

  • bigdata101虚拟机上创建目录,并调整目录所属用户及组

    sudo mkdir /opt/module /opt/software 
    

    虚拟机搭建Hadoop集群环境-CentOS篇_第36张图片
    虚拟机搭建Hadoop集群环境-CentOS篇_第37张图片

  • 使用Xftp上传JDK安装包并解压

    虚拟机搭建Hadoop集群环境-CentOS篇_第38张图片
    虚拟机搭建Hadoop集群环境-CentOS篇_第39张图片

    cd /opt/software
    tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
    

虚拟机搭建Hadoop集群环境-CentOS篇_第40张图片
在这里插入图片描述

  • 配置环境变量,验证是否安装成功

    sudo touch /etc/profile.d/my_env.sh
    sudo vi /etc/profile.d/my_env.sh
    # 在my_env.sh输入以下内容后,保存退出
    export JAVA_HOME=/opt/module/jdk1.8.0_212
    export PATH=$PATH:$JAVA_HOME/bin
    

    虚拟机搭建Hadoop集群环境-CentOS篇_第41张图片

    如图所示,打印出Java版本信息后即表明安装成功。

安装 Hadoop

  • hadoop安装包上传至 /opt/software目录 ;

  • 解压安装

    cd /opt/software
    tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
    

    虚拟机搭建Hadoop集群环境-CentOS篇_第42张图片

  • 配置环境变量

    sudo vim /etc/profile.d/my_env.sh
    # 输入以下内容并保存退出
    #HADOOP_HOME
    export HADOOP_HOME=/opt/module/hadoop-2.7.2
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin
    
  • 刷新环境变量,验证是否安装成功

    source /etc/profile.d/my_env.sh
    hadoop version
    

虚拟机搭建Hadoop集群环境-CentOS篇_第43张图片

关闭防火墙

  • 查看防火墙状态

    systemctl status firewalld.service
    

    虚拟机搭建Hadoop集群环境-CentOS篇_第44张图片

  • 关闭防火墙

    sudo systemctl stop firewalld.service
    

    虚拟机搭建Hadoop集群环境-CentOS篇_第45张图片

  • 永久关闭防火墙

    sudo systemctl disable firewalld.service
    

在这里插入图片描述

其它节点虚拟机克隆

  • bigdata-101为模板,克隆两个虚拟机,命名为bigdata-102,bigdata-103(克隆前需要将bigdata-101进行关机操作)

  • 修改对应节点虚拟机IP及主机名

    bigdata-102 IP 修改为:192.168.1.102,主机名修改为:bigdata102

    bigdata-103 IP 修改为:192.168.1.103,主机名修改为:bigdata103

  • 启动三台虚拟机

配置 SSH 无密钥登录

  • 生成公钥和私钥

    # 执行后连敲三下空格
    ssh-keygen -t rsa
    

虚拟机搭建Hadoop集群环境-CentOS篇_第46张图片

  • 分发公钥

    ssh-copy-id bigdata101
    ssh-copy-id bigdata102
    ssh-copy-id bigdata103
    

    虚拟机搭建Hadoop集群环境-CentOS篇_第47张图片
    虚拟机搭建Hadoop集群环境-CentOS篇_第48张图片
    虚拟机搭建Hadoop集群环境-CentOS篇_第49张图片

  • 切换到其它虚拟机分别执行生成公钥和私钥、分发公钥操作

  • 切换root用户,对三台虚拟机分别执行生成公钥和私钥、分发公钥操作

  • 验证 SSH 无密钥登录

    ssh bigdata101
    ssh bigdata102
    ssh bigdata103
    

    虚拟机搭建Hadoop集群环境-CentOS篇_第50张图片

编写文件集群分发脚本

  • 在三台虚拟机上分别安装 rsync 服务

    sudo yum install -y rsync
    

虚拟机搭建Hadoop集群环境-CentOS篇_第51张图片

  • 创建/home/bigdata/bin目录

    cd
    mkdir bin
    

    虚拟机搭建Hadoop集群环境-CentOS篇_第52张图片

  • 创建集群分发脚本

    cd /home/bigdata/bin
    touch xsync
    vi xsync
    

虚拟机搭建Hadoop集群环境-CentOS篇_第53张图片

  • 输入脚本内容

    #!/bin/bash
    #1 获取输入参数个数,如果没有参数,直接退出
    pcount=$#
    if ((pcount==0)); then
    echo no args;
    exit;
    fi
    
    #2 获取文件名称
    p1=$1
    fname=`basename $p1`
    echo fname=$fname
    
    #3 获取上级目录到绝对路径
    pdir=`cd -P $(dirname $p1); pwd`
    echo pdir=$pdir
    
    #4 获取当前用户名称
    user=`whoami`
    
    #5 循环
    for host in bigdata101 bigdata102 bigdata103
    do
        echo ------------------- $host --------------
        rsync -av $pdir/$fname $user@$host:$pdir
    done
    
  • 给脚本添加执行权限

    chmod u+x xsync
    

    在这里插入图片描述

修改Hadoop配置为集群配置

  • HDFS 相关文件配置

    • 配置 core-site.xml

      <!-- 指定HDFS中NameNode的地址 -->
      <property>
      		<name>fs.defaultFS</name>
            <value>hdfs://bigdata101:9000</value>
      </property>
      
      <!-- 指定Hadoop运行时产生文件的存储目录 -->
      <property>
      		<name>hadoop.tmp.dir</name>
      		<value>/opt/module/hadoop-2.7.2/data/tmp</value>
      </property>
      

      注意:/opt/module/hadoop-2.7.2/data/tmp 需提前创建。

    • 配置 hadoop-env.sh

      export JAVA_HOME=/opt/module/jdk1.8.0_212
      
    • 配置 hdfs-site.xml

      <!-- 配置文件副本数 -->
      <property>
      	<name>dfs.replication</name>
      	<value>3</value>
      </property>
      <property>
          <name>dfs.http.address</name>
          <value>bigdata101:50070</value>
      </property>
      <!-- 指定Hadoop辅助名称节点主机配置 -->
      <property>
      	<name>dfs.namenode.secondary.http-address</name>
      	<value>bigdata103:50090</value>
      </property>
      
  • YARN 文件配置

    • 配置yarn-site.xml

      <!-- Reducer获取数据的方式 -->
      <property>
      	<name>yarn.nodemanager.aux-services</name>
      	<value>mapreduce_shuffle</value>
      </property>
      
      <!-- 指定YARN的ResourceManager的地址 -->
      <property>
      	<name>yarn.resourcemanager.hostname</name>
      	<value>bigdata102</value>
      </property>
      
      <!-- 日志聚集功能使能 -->
      <property>
          <name>yarn.log-aggregation-enable</name>
          <value>true</value>
      </property>
      
      <!-- 日志保留时间设置7天 -->
      <property>
          <name>yarn.log-aggregation.retain-seconds</name>
          <value>604800</value>
      </property>
      
    • 配置 yarn-env.sh

      export JAVA_HOME=/opt/module/jdk1.8.0_212
      
  • MapReduce 文件配置

    • 配置mapred-site.xml

      <!-- 指定MR运行在Yarn上 -->
      <property>
      	<name>mapreduce.framework.name</name>
      	<value>yarn</value>
      </property>
      
      <!-- 历史服务器端地址 -->
      <property>
          <name>mapreduce.jobhistory.address</name>
          <value>bigdata101:10020</value>
      </property>
      
      <!-- 历史服务器web端地址 -->
      <property>
          <name>mapreduce.jobhistory.webapp.address</name>
          <value>bigdata101:19888</value>
      </property>
      
    • 配置mapred-env.sh

      export JAVA_HOME=/opt/module/jdk1.8.0_212
      
  • slaves 文件配置

    vi slaves
    # 添加以下内容
    bigdata101
    bigdata102
    bigdata103
    
  • 将文件分发到其它节点

    xsync /opt/module/hadoop-2.7.2/
    

    虚拟机搭建Hadoop集群环境-CentOS篇_第54张图片

集群时间同步

  • 使用bigdata101为时间服务,其它虚拟机时间跟它保持同步,切换root用户,在三台虚拟机上安装 ntp 服务

    su
    yum install -y ntp
    rpm -qa | grep ntp
    

    虚拟机搭建Hadoop集群环境-CentOS篇_第55张图片

  • 修改 ntp 配置文件

    vi /etc/ntp.conf
    # 添加内容:授权192.168.1.0-192.168.1.255网段上的所有机器可以从这台机器上查询和同步时间
    restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
    # 修改内容:集群在局域网中,不使用其他互联网上的时间
    #server 0.centos.pool.ntp.org iburst
    #server 1.centos.pool.ntp.org iburst
    #server 2.centos.pool.ntp.org iburst
    #server 3.centos.pool.ntp.org iburst
    # 添加内容:当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步
    server 127.127.1.0
    fudge 127.127.1.0 stratum 10
    

    虚拟机搭建Hadoop集群环境-CentOS篇_第56张图片

  • 修改/etc/sysconfig/ntpd 文件

    vim /etc/sysconfig/ntpd
    # 添加以下内容:让硬件时间与系统时间一起同步
    SYNC_HWCLOCK=yes
    
  • 重新启动ntpd服务并设置开机启动

    # 启动服务
    service ntpd start
    # 查看服务状态
    service ntpd status
    # 设置开机启动
    chkconfig ntpd on
    

    虚拟机搭建Hadoop集群环境-CentOS篇_第57张图片

  • 其它机器配置(必须使用root用户)

    • 在其他机器配置10分钟与时间服务器同步一次

      crontab -e
      # 编写定时任务如下
      */10 * * * * /usr/sbin/ntpdate bigdata101
      

你可能感兴趣的:(大数据开发,大数据,hadoop,centos)