Hadoop完全分布式环境搭建步骤

大数据技术 潘老师 3年前 (2021-02-25) 2233 ℃ (0) 扫码查看

一.说明:

1、伪分布式环境是一台虚拟机,自身既是主节点又是从节点,即既是NameNode也是DataNode
2、完全分布式环境,需要多台虚拟机,这里我们使用一主两从配置
3、我们这里的分布式环境搭建基于之前的伪分布式master主机

二、具体步骤

注意:以下1~5步具体操作及第6步中部分操作可以参考下列文章中配置第一台master虚拟主机时的操作:
Hadoop3.x伪分布式环境搭建图文详解教程,让你快速入门大数据开发

如果在你在网上搜Hadoop伪分布式环境搭建的教程,结果可谓五花八门,有的甚至漏洞百出,很难找到一篇非常详细的 […]

1.准备多台虚拟机

之前搭建伪分布式时,已经有了一台master虚拟主机,现在再安装两台虚拟主机分别为slave1、salve2

2.设置静态IP和主机名

要求如下(具体主机名和ip根据自己情况而定):
Hadoop完全分布式环境搭建步骤
然后重启虚拟主机。

3.修改hosts文件需要注意:

3台虚拟机的hosts文件都需配置如下信息:

192.168.217.100 master
192.168.217.101 slave1
192.168.217.102 slave2

Hadoop完全分布式环境搭建步骤
可以将master的修改好后,可以统一远程copy到slave1和slave2,使用指令:

scp /etc/hosts root@slave1:/etc/hosts
scp /etc/hosts root@slave2:/etc/hosts

Hadoop完全分布式环境搭建步骤
查看slave1和slave2的hosts:
Hadoop完全分布式环境搭建步骤

4.关闭防火墙

永久关闭slave1和slave2的防火墙和selinux
注意:关闭selinux也可以通过远程copy的方法

5.新建用户(忽略此步,我们直接用root用户

在slave1和slave2新建hadoop用户,注意用户名和密码必须都和master一致
注意:修改sudoers也可以通过远程copy的方法

6.设置3台机器的相互免密登录

为了方便后期整合ZK和HBase集群,我们推荐实现3台机器相互免密登录,逻辑就是:
1)由于在搭建伪分布式时我们就已经在master上生成了公私钥对,并且将公钥cat到了authorized_keys中,现在我们只需在slave1slave2中分别使用root用户生成公私钥对,代码如下:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

2)将slave1和slave2中的id_dsa.pub分别远程拷贝到master中,并重命名:

#在slave1中执行
scp ~/.ssh/id_dsa.pub root@master:~/.ssh/id_dsa_slave1.pub
#在slave2中执行
scp ~/.ssh/id_dsa.pub root@master:~/.ssh/id_dsa_slave2.pub

3)由于我们原先已经将master的id_dsa.pub公钥cat到了authorized_keys,现在只需在master中将id_dsa_slave1.pubid_dsa_slave2.pub公钥cat进去即可:

#在master中执行
cat ~/.ssh/id_dsa_slave1.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa_slave2.pub >> ~/.ssh/authorized_keys

4)将master中的带有这3台主机公钥的文件authorized_keys远程拷贝到slave1和slave2:

#在master中执行
scp ~/.ssh/authorized_keys root@slave1:~/.ssh/
scp ~/.ssh/authorized_keys root@slave2:~/.ssh/

5)然后测试相互之间的免密登录:
Hadoop完全分布式环境搭建步骤

7.通过root用户远程复制jdk到slave1和slave2
//安装包:
scp -rq /usr/java/ slave1:/usr/
scp -rq /usr/java/ slave2:/usr/
//配置文件:
scp -rq /etc/profile/ slave1:/etc/
scp -rq /etc/profile/ slave2:/etc/
//文件生效:在slave1和slave2中:
source /etc/profile
java -version

Hadoop完全分布式环境搭建步骤
Hadoop完全分布式环境搭建步骤
耐心等待,不能Ctrl + C中途停止进程
查看slave1和slave2的usr目录和profile
分别测试java -version
Hadoop完全分布式环境搭建步骤

8.修改master节点hadoop的配置

注意1:环境变量不需要再次配置
注意2:hdfs-site.xml文件的dfs.replication的value改为2,因为有两个datanode从节点
注意3:hdfs-site.xml再新增SecondaryName的启动路径,默认在主节点上,这里我们将其配置在slave1节点上(此步可忽略,就放在主节点就可以)

<property>
   <name>dfs.namenode.secondary.http-address</name>
   <value>slave1:9868</value>
</property>

Hadoop完全分布式环境搭建步骤
注意4:yarn-site.xml再新增 resourcemanager启动位置

<property> 
   <name>yarn.resourcemanager.hostname</name> 
   <value>master</value> 
</property>

注意5:新增对workers文件配置,配置从节点主机名,这里我们将slave1和slave2作为从节点:

sudo vi workers

原:
Hadoop完全分布式环境搭建步骤
现:
Hadoop完全分布式环境搭建步骤
注意6:将master的/usr/hadoop目录赋予777权限

sudo chmod -R 777 /usr/hadoop

注意7:删除hadoopdata目录:
由于我们之前搭建伪分布式时,hdfs格式化过,在hadoop目录中会生成hadoopdata目录(根据你的配置可能路径和名称不一样),我们需要将该目录删除

rm -rf hadoopdata

3)将master上的hadoop目录远程copy到slave1和slave2上:

sudo scp -rq /usr/hadoop/ root@slave1:/usr/
sudo scp -rq /usr/hadoop/ root@slave2:/usr/

时间比较长,需要耐心等待
Hadoop完全分布式环境搭建步骤

9.启动验证

1)格式化hdfs文件系统
我们只需要在master节点执行格式化操作即可:

hdfs namenode -format
注意:只需要格式化一次,不需要每次使用都格式化,如果格式化出错,最好先删除/usr/hadoop/hadoopdata目录再重新格式化

2)启动hadoop
我们只需在master节点启动hadoop即可:

start-all.sh

Hadoop完全分布式环境搭建步骤
3)master执行jps命令,有如下进程:
Hadoop完全分布式环境搭建步骤
slave1:
Hadoop完全分布式环境搭建步骤
slave2:
Hadoop完全分布式环境搭建步骤
4)也可以通过web ui进行访问查看
yarn:http://192.168.217.100:8088/cluster
master:http://192.168.217.100:9870
datanode1:http://192.168.217.101:9864
datanode2:http://192.168.217.102:9864
5)停止hadoop

stop-all.sh

版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/java/bigdata/1961.html
喜欢 (3)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】