一 服务器配置

  • 关闭防火墙

    1# 查看状态
    2firewall-cmd --state
    3
    4# 停止防火墙
    5systemctl stop firewalld.service
    6
    7# 禁止开机自启动
    8systemctl disable firewalld.service
    
  • 关闭selinux

    1vi /etc/sysconfig/selinux
    2
    3SELINUX=disabled
    

二 网络配置

  • 找到待配置网卡

    1cd /etc/sysconfig/network-scripts/
    2ls
    3
    4# 这里选择ifcfg-enp3s0
    5
    6vi ifcfg-enp3s0
    
  • 修改下列配置

    1BOOTPROTO=static
    2ONBOOT=yes
    3IPADDR=192.168.0.200
    4GATEWAY=192.168.0.1
    5DNS1=8.8.8.8
    
  • 网络测试

    1service network restart
    2# 局域网测试
    3ping 192.168.0.229
    4
    5# 外网测试
    6ping www.baidu.com
    

三 安装Java

  • 创建安装目录

    1cd /home/whr
    2mkdir java
    3cd java
    
  • 安装wget

    1yum -y install wget
    
  • 下载解压

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

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

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

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

    1java -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 配置

    1vi /etc/hosts
    2
    3# 配置如下
    4127.0.0.1   localhost
    5192.168.0.200 slave1
    6192.168.0.201 slave2
    7192.168.0.202 master
    

五 配置SSH(主节点)

  • 修改配置文件

    1vi /etc/ssh/sshd_config
    2
    3AuthorizedKeysFile      .ssh/authorized_keys
    4PubkeyAuthentication yes
    
  • 生成秘钥

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

    1ssh-copy-id -i ~/.ssh/id_dsa.pub master
    2ssh-copy-id -i ~/.ssh/id_dsa.pub slave1
    3ssh-copy-id -i ~/.ssh/id_dsa.pub slave2
    4
    5# 验证
    6ssh master
    7ssh slave1
    8ssh slave2
    

六 安装Hadoop(主节点)

  • 下载

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

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

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

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

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

       1vi core-site.xml
       2
       3<configuration>
       4    <property>
       5      <name>hadoop.tmp.dir</name>
       6   <value>/home/whr/hadoop/tmp</value>
       7   <description>Abase for other temporary directories.</description>
       8    </property>
       9
      10    <property>
      11      <name>fs.default.name</name>
      12      <value>hdfs://master:9000</value>
      13    </property>
      14</configuration>
      
    • 配置hdfs-site.xml

       1vi hdfs-site.xml
       2
       3<configuration>
       4    <property>
       5      <name>dfs.namenode.name.dir</name>
       6      <value>/home/whr/hadoop/dfs/name</value>
       7    </property>
       8    <property>
       9      <name>dfs.datanode.data.dir</name>
      10      <value>/home/whr/hadoop/dfs/data</value>
      11    </property>
      12</configuration>
      
    • 配置yarn-site.xml

       1vi yarn-site.xml
       2
       3<configuration>
       4    <property>
       5      <name>yarn.nodemanager.aux-services</name>
       6      <value>mapreduce_shuffle</value>
       7    </property>
       8    <property>
       9      <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
      10      <value>org.apache.hadoop.mapred.ShuffleHandler</value>
      11    </property>
      12    <property>
      13      <name>yarn.resourcemanager.hostname</name>
      14      <value>master</value>
      15    </property>
      16</configuration>
      
    • 配置mapred-site.xml

       1vi mapred-site.xml
       2
       3<configuration>
       4    <property>
       5      <name>mapred.job.tracker</name>
       6      <value>master:49001</value>
       7    </property>
       8    <property>
       9      <name>mapred.local.dir</name>
      10      <value>/home/whr/hadoop/var</value>
      11    </property>
      12    <property>
      13      <name>mapreduce.framework.name</name>
      14      <value>yarn</value>
      15    </property>
      16</configuration>
      
    • 配置workers

      1vi workers
      2
      3master
      4slave1
      5slave2
      
    • 修改hdfs启动和停止脚本

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

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

     1# 将配置好的Hadoop复制到从节点
     2scp -r /home/whr/hadoop/hadoop-3.2.1 root@192.168.0.201:/home/whr/hadoop/
     3
     4# 设置软链接
     5ssh slave1
     6ln -s /home/whr/hadoop/hadoop-3.2.1  /usr/local/hadoop
     7exit
     8
     9ssh slave2
    10ln -s /home/whr/hadoop/hadoop-3.2.1  /usr/local/hadoop
    11exit
    

七 启动测试

  • 格式化namenode

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

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

    1bash start-all.sh
    
  • 验证

     1jps
     2
     34800 NodeManager
     44002 NameNode
     54387 SecondaryNameNode
     64666 ResourceManager
     713355 Jps
     84126 DataNode
     9
    10
    11# 客户端访问
    12http://192.168.0.202:9870/
    13http://192.168.0.202:8088/