CentOS7安装三节点Hadoop集群

一 服务器配置

  • 关闭防火墙

    # 查看状态
    firewall-cmd --state
    
    # 停止防火墙
    systemctl stop firewalld.service
    
    # 禁止开机自启动
    systemctl disable firewalld.service
  • 关闭selinux

    vi /etc/sysconfig/selinux
    
    SELINUX=disabled

二 网络配置

  • 找到待配置网卡

    cd /etc/sysconfig/network-scripts/
    ls
    
    # 这里选择ifcfg-enp3s0
    
    vi ifcfg-enp3s0
  • 修改下列配置

    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=192.168.0.200
    GATEWAY=192.168.0.1
    DNS1=8.8.8.8
  • 网络测试

    service network restart
    # 局域网测试
    ping 192.168.0.229
    
    # 外网测试
    ping www.baidu.com

三 安装Java

  • 创建安装目录

    cd /home/whr
    mkdir java
    cd java
  • 安装wget

    yum -y install wget
  • 下载解压

    使用wget下载或通过官网下载后,使用WinSCP传到 /home/whr/java 目录下

    cd /home/whr/java
    
    tar -zxvf jdk-8u281-linux-x64.tar.gz
  • 设置环境变量

    vi /etc/profile
    
    # 末尾添加
    export JAVA_HOME=/home/whr/java/jdk1.8.0_281
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
    
    # 激活环境变量
    source /etc/profile
  • 添加软链接

    ln -s /home/whr/java/jdk1.8.0_281/bin/java /usr/bin/java
  • 安装完成

    java -version

四 配置hosts

  • 节点规划

    IP NodeType Name
    192.168.0.200 DataNode slave1
    192.168.0.201 DataNode slave2
    192.168.0.202 NameNode / DataNode master
  • hosts 配置

    vi /etc/hosts
    
    # 配置如下
    127.0.0.1   localhost
    192.168.0.200 slave1
    192.168.0.201 slave2
    192.168.0.202 master

五 配置SSH(主节点)

  • 修改配置文件

    vi /etc/ssh/sshd_config
    
    AuthorizedKeysFile      .ssh/authorized_keys
    PubkeyAuthentication yes
  • 生成秘钥

    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
  • 分发公钥

    ssh-copy-id -i ~/.ssh/id_dsa.pub master
    ssh-copy-id -i ~/.ssh/id_dsa.pub slave1
    ssh-copy-id -i ~/.ssh/id_dsa.pub slave2
    
    # 验证
    ssh master
    ssh slave1
    ssh slave2

六 安装Hadoop(主节点)

  • 下载

    cd /home/whr
    mkdir hadoop
    cd hadoop
    
    wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
    # 或本地下载使用WinSCP传送
  • 安装

    tar zxvf hadoop-3.2.1.tar.gz
    
    # 创建软链接
    ln -s /home/whr/hadoop/hadoop-3.2.1  /usr/local/hadoop
  • 配置Hadoop环境变量

    vi /etc/profile
    
    # 末尾添加
    export HADOOP_HOME=/home/whr/hadoop/hadoop-3.2.1
    export PATH=${HADOOP_HOME}/bin:$PATH
    
    source /etc/profile
  • 修改配置文件

    cd /usr/local/hadoop/etc/hadoop
    • 配置hadoop-env.sh

      vi hadoop-env.sh
      
      export JAVA_HOME=/home/whr/java/jdk1.8.0_281
    • 配置core-site.xml

      vi core-site.xml
      
      
          
            hadoop.tmp.dir
         /home/whr/hadoop/tmp
         Abase for other temporary directories.
          
      
          
            fs.default.name
            hdfs://master:9000
          
      
    • 配置hdfs-site.xml

      vi hdfs-site.xml
      
      
          
            dfs.namenode.name.dir
            /home/whr/hadoop/dfs/name
          
          
            dfs.datanode.data.dir
            /home/whr/hadoop/dfs/data
          
      
    • 配置yarn-site.xml

      vi yarn-site.xml
      
      
          
            yarn.nodemanager.aux-services
            mapreduce_shuffle
          
          
            yarn.nodemanager.aux-services.mapreduce_shuffle.class
            org.apache.hadoop.mapred.ShuffleHandler
          
          
            yarn.resourcemanager.hostname
            master
          
      
    • 配置mapred-site.xml

      vi mapred-site.xml
      
      
          
            mapred.job.tracker
            master:49001
          
          
            mapred.local.dir
            /home/whr/hadoop/var
          
          
            mapreduce.framework.name
            yarn
          
      
    • 配置workers

      vi workers
      
      master
      slave1
      slave2
    • 修改hdfs启动和停止脚本

      cd /usr/local/hadoop/sbin
      
      vi start-dfs.sh
      vi stop-dfs.sh
      
      # 在最前面加如下内容
      HDFS_DATANODE_USER=root
      HADOOP_SECURE_DN_USER=root
      HDFS_NAMENODE_USER=root
      HDFS_SECONDARYNAMENODE_USER=root
    • 修改yarn启动和停止脚本

      cd /usr/local/hadoop/sbin
      
      vi start-yarn.sh
      vi stop-yarn.sh
      # 在文件前添加如下内容
      YARN_RESOURCEMANAGER_USER=root
      HADOOP_SECURE_DN_USER=root
      YARN_NODEMANAGER_USER=root
  • 从节点配置Hadoop

    # 将配置好的Hadoop复制到从节点
    scp -r /home/whr/hadoop/hadoop-3.2.1 root@192.168.0.201:/home/whr/hadoop/
    
    # 设置软链接
    ssh slave1
    ln -s /home/whr/hadoop/hadoop-3.2.1  /usr/local/hadoop
    exit
    
    ssh slave2
    ln -s /home/whr/hadoop/hadoop-3.2.1  /usr/local/hadoop
    exit

七 启动测试

  • 格式化namenode

    hdfs namenode -format
    
    # 重新格式化需要删除tmp和dfs文件夹
  • 启动hdfs

    cd /usr/local/hadoop/sbin
    
    bash start-all.sh
  • 启动yarn

    bash start-all.sh
  • 验证

    jps
    
    4800 NodeManager
    4002 NameNode
    4387 SecondaryNameNode
    4666 ResourceManager
    13355 Jps
    4126 DataNode
    
    

客户端访问

http://192.168.0.202:9870/
http://192.168.0.202:8088/