一、软件环境

  1. Virtualbox 6.0/7.0
  2. 64位Ubuntu 20.04/22.04/24.04 LTS服务器版
  3. Java SE/JDK 8.0
  4. Hadoop 2.x/3.x

二、Hadoop多节点集群的组成结构

主机名称(hostname)IP地址作用
master192.168.56.100NameNode和ResourceManager
data1192.168.56.101DateNode和NodeManager
data2192.168.56.102DateNode和NodeManager
data3192.168.56.103DateNode和NodeManager

三、Hadoop多节点集群安装主要步骤

  1. 使用Virtualbox创建主节点虚拟机:50GB动态磁盘空间,8GB内存,配置NAT及Host-only网卡各一块;
  2. 安装64位Ubuntu 20.04/22.04/24.04 LTS服务器版操作系统,并修改主机名称(/etc/hostname文件),配置网卡IP地址;
  3. 安装Java SE/JDK 8.0(如安装目标目录/opt/jse/1.8.0_431),设置JAVA_HOME等环境变量;
  4. 安装Hadoop 2.x/3.x(如安装目录/opt/hadoop/3.4.1),设置HADOOP_HOME等环境变量;
  5. /etc/hosts中增加如下地址解析:
    192.168.56.100 master
    192.168.56.101 data1
    192.168.56.102 data2
    192.168.56.103 data3
    
  6. /etc/sysctl.conf增加配置,禁用IPv6:
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    net.ipv6.conf.lo.disable_ipv6 = 1
    
  7. 配置ssh使用密钥免密码登入;
  8. 关闭主节点虚拟机,复制主节点虚拟机为三台从节点虚拟机,修改Hadoo配置文件,启动Hadoop多节点集群。

四、Hadoop多节点集群主/从节点配置

  1. 在主/从节点上,调整以下文件:
  1. ${HADOOP_HOME}/etc/hadoop/core-site.xml文件:

    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://192.168.56.100:9000</value>
        </property>
    </configuration>
    
  2. ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml文件:

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>3</value>
        </property>
        <property>
            <name>dfs.client.use.datanode.hostname</name>
            <value>false</value>
        </property>
        <property>
            <name>dfs.datanode.use.datanode.hostname</name>
            <value>false</value>
        </property>
        <property>
            <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
            <value>false</value>
        </property>
    </configuration>
    
  3. ${HADOOP_HOME}/etc/hadoop/mapred-site.xml文件:

    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <property>
            <name>mapreduce.application.classpath</name>
            <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
        </property>
        <property>
            <name>mapreduce.jobtracker.address</name>
            <value>192.168.56.100:5431</value>
        </property>
    </configuration>
    
  4. ${HADOOP_HOME}/etc/hadoop/yarn-site.xml文件:

    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.nodemanager.env-whitelist</name>
            <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
        </property>
        <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>192.168.56.100:8025</value>
        </property>
        <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>192.168.56.100:8030</value>
        </property>
        <property>
            <name>yarn.resourcemanager.address</name>
            <value>192.168.56.100:8050</value>
        </property>
    </configuration>
    
  5. 新建${HADOOP_HOME}/etc/hadoop/masters文件,内容:

    192.168.56.100
    
  6. 新建${HADOOP_HOME}/etc/hadoop/slaves文件,内容:

    192.168.56.101
    192.168.56.102
    192.168.56.103
    
  1. 在主节点上,创建/data/hadoop/hdfs/dfs/name目录,调整${HADOOP_HOME}/etc/hadoop/hdfs-site.xml文件,增加配置项:
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:///data/hadoop/hdfs/dfs/name</value>
        </property>
    
  2. 在从节点上,创建/data/hadoop/hdfs/dfs/data目录,调整${HADOOP_HOME}/etc/hadoop/hdfs-site.xml文件,增加配置项:
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:///data/hadoop/hdfs/dfs/data</value>
        </property>
    

五、Hadoop多节点集群启动

  1. 在主/从节点上,验证ssh使用密钥免密登入集群中的其他各台机器;
  2. 在主节点上执行hdfs namenode -format && start-dfs.sh && start-yarn.sh
  3. 在主/从节点上执行jps查看相关进程;
    1. 主节点jps输出如:
      3878 Jps
      3240 NameNode
      3453 SecondaryNameNode
      3615 ResourceManager 
      
    2. 从节点jps输出如:
      2545 Jps
      2445 NodeManager
      2287 DataNode
      
  4. 在浏览器中输入地址 http://192.168.56.100:50070/http://192.168.56.100:8088/ 查看Hadoop多节点集群的运行情况。

六、Hadoop多节点集群停止

在主节点上执行stop-yarn.sh && stop-dfs.sh命令来停止Hadoop多节点集群。