Hadoop之完全分布式集群(保姆级教程)

    科技2026-01-31  8

    Hadoop之完全分布式集群(保姆级教程)

    文章目录

    Hadoop之完全分布式集群(保姆级教程)环境介绍补充配置SSH免密登录配置文件配置hadoop-env.sh文件和yarn-env.sh文件配置core-site.xml文件配置hdfs-site.xml文件配置yarn-site.xml文件配置mapred-site.xml文件配置slaves文件 复制两台虚拟机克隆后补充差异物理机的hosts文件也要建立映射关系与两台克隆机建立SSH连接 格式化NameNode启动集群检验检验hdfs检验yarn

    环境介绍

    虚拟机版本 → VMware Workstation16 PRO

    镜像版本 → CentOS-7-x86_64-Minimal-2003

    远程连接工具 → FinalShell 3.6.3

    环境: ​ ①已关闭防火墙selinux ​ ②NAT模式, 静态ip: 192.168.8.101 ​ ③主机名: master(域名映射关系已建立) ​ ④jdk与hadoop已安装并配置环境变量

    即:处于hadoop本地模式

    可以参考我之前的Hadoop之本地模式(保姆级教程)

    补充

    [root@master ~]# vim /etc/hosts ** 在打开的文件中添加以下内容↓ 192.168.8.101 master 192.168.8.102 slave1 192.168.8.103 slave2 [root@master ~]# vim /etc/hostname ** 在打开的文件中添加以下内容↓ master

    配置SSH免密登录

    #--> ①生成公钥和私钥 [root@master ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #--> ②传递公钥 [root@master ~]# cat id_rsa.pub >> ~/.ssh/authorized_keys #--> ③尝试登录 [root@master ~]# ssh master (第一次登录要输一次yes, 以后就不需要了)

    配置文件

    配置hadoop-env.sh文件和yarn-env.sh文件
    :如果前面配置过jdk和hadoop的环境变量就不需要进行这步 #hadoop-env.sh export JAVA_HOME=/opt/jdk #yarn-env.sh export JAVA_HOME=/opt/jdk

    先进入到这个目录下, 方便我们后续的操作cd $HADOOP_HOME/etc/hadoop

    配置core-site.xml文件

    用vim core-site.xml打开该配置文件

    <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://192.168.8.101:8020/</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/apps/hadoop/tmp</value> </property> </configuration>

    复制配置信息后保存退出

    配置hdfs-site.xml文件

    用vim hdfs-site.xml打开该配置文件

    <configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:///opt/apps/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///opt/apps/hadoop/tmp/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.blocksize</name> <value>134217728</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>slave1:50090</value> </property> </configuration>

    复制配置信息后保存退出

    配置yarn-site.xml文件

    用vim yarn-site.xml打开该配置文件

    <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> </configuration>

    复制配置信息后保存退出

    配置mapred-site.xml文件

    由于hadoop本身是没有这个文件的, 所以需要我们去复制一份

    [root@master hadoop]# cp mapred-site.xml.template mapred-site.xml

    用vim mapred-site.xml打开该配置文件

    <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> </configuration>

    复制配置信息后保存退出

    配置slaves文件

    用vim slaves打开该配置文件

    master slave1 slave2

    复制配置信息后保存退出

    复制两台虚拟机

    并用相同手法克隆slave2

    克隆后补充差异
    #--> slave2也一样,就不造轮子了 [root@master ~]# hostnamectl set-hostname slave1

    #--> slave1的IP为: 192.168.1.102 #--> slave2的IP为: 192.168.1.103

    物理机的hosts文件也要建立映射关系

    与两台克隆机建立SSH连接

    格式化NameNode

    [root@master ~]# hadoop namenode -format

    看到"successfully formatted"字样即为成功格式化

    启动集群

    #--> ①启动hdfs [root@master hadoop]# start-dfs.sh #--> ②启动yarn [root@master hadoop]# start-yarn.sh #--> ③查看进程 [root@master hadoop]# jps

    有以下进程即为成功启动

    : 第一次启动可能会要你手动输入几次"yes"

    执行start-dfs.sh后 #jps查看进程 master slave1 slave2 ----------------------------------------------------------------------- NameNode SecondaryNameNode DataNode DataNode DataNode #若少进程可以尝试单独启动缺少程序 hadoop-daemon.sh start xxxxxx

    再执行start-yarn.sh后 #jps查看进程 master slave1 slave2 ----------------------------------------------------------------------- NameNode SecondaryNameNode DataNode DataNode DataNode NodeManager ResourceManager NodeManager NodeManager #若少进程可以尝试单独启动缺少程序 hadoop-daemon.sh start xxxxxx

    检验

    检验hdfs

    在浏览器地址栏输入http://master:50070

    检验yarn

    在浏览器地址栏输入http://master:8088

    Processed: 0.022, SQL: 9