Hadoop之完全分布式集群(保姆级教程)
文章目录
环境介绍
虚拟机版本 → 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