Hadoop完全分布式集群搭建(Hadoop3.3.0)

写在前面:学习记录3~免得以后忘了

完全分布式集群搭建

前情提要:
https://blog.csdn.net/l1682686/article/details/107713274
最好先搭个伪分布式练练手。

假如你搭好了,那么

关闭防火墙systemctl stop firewalld.service

1 克隆前配置

1.1先修改一下 /etc/hadoop下的core-site.xml:

在这里插入图片描述

我决定主机名用“master”,所以用master替代了原来的localhost。

1.2修改yarn-site.xml:

新增一个property,指定resoucemanager的hostname主机名

<property>
 
        <name>yarn.resourcemanager.hostnamename>
 
        <value>mastervalue>
property>

1.3修改 etc/hadoop下的workers文件:

新增:
Hadoop完全分布式集群搭建(Hadoop3.3.0)_第1张图片

3.0.0以后的版本都不让用slaves了,现在是workers,但功能没差(

2 克隆
2.1 用vmware的克隆功能克隆2个虚拟机。在这里插入图片描述

2.2 修改hostname

切换到管理员用户,在每台虚拟机上,
vim /etc/hostname,把localhost改成对应的名字在这里插入图片描述
2.3 配置网络信息

在每台机器上,

vim /etc/sysconfig/network-scripts/ifcfg-ens33

(没找到就去network-scripts下找找差不多的文件来改)

Hadoop完全分布式集群搭建(Hadoop3.3.0)_第2张图片
这么做是取消dhcp自动分配,设置一个固定的地址,根据Vmware设置好的NAT模式下的网关来给每台虚拟机分配一个固定的IP。

我这里就是192.168.188.101,192.168.188.102,192.168.188.103 。

配置好了,nmcli c reload ens33 重启网络服务。(用的是CentOS 8)

(ens33是网卡名)

ifconfig 查看是否生效。

2.4 修改host文件

修改每一台的hosts文件,vim /etc/hosts

192.168.188.101 master
192.168.188.102 worker1
192.168.188.103 worker2

记得要一一对应。

2.5 配置ssh免密登陆。

配置ssh免密登录

原理:通过创建无密码公钥的方式,将公钥传给对方。使用ssh协议连接时,会寻找authorized_keys文件中存放的公钥,如果有目标主机的公钥则将公钥传给目标主机,目标主机用自己的私钥和公钥进行匹配,正确匹配之后则认为两者可信,即不需要密码就可以登录

实现节点之间免密服务原理:

通过把所有节点的公钥写入authorized_keys文件中,再把这个文件传输给每一台节点,此时所有节点都有了其他节点的公钥,则登录时就不需要输入密码

在每台主机上输入 ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa
创建一个无密码的公钥,-t是类型的意思,dsa是生成的密钥类型,-P是密码,’’表示无密码,-f后是秘钥生成后保存的位置

创建完成后,会出现两个文件

id_dsa 存放私钥

id_dsa.pub 存放公钥

输入 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
将公钥id_dsa.pub添加进authorized_keys

执行后会创建authorized_keys文件,这个文件用来放其他节点的公钥。

在非master节点上输入 ssh-copy-id -i ~/.ssh/id_dsa.pub master
将自己的公钥传输给master节点。

这时,master节点拥有所有节点的公钥。

在master中输入

scp -r /home/hadoop/.ssh/authorized_keys root@master:/home/hadoop/.ssh/

scp -r /home/hadoop/.ssh/authorized_keys root@worker1:/home/hadoop/.ssh/

scp -r /home/hadoop/.ssh/authorized_keys root@worker2:/home/hadoop/.ssh/

在每一台主机上输入 chmod 600/home/hadoop/.ssh/authorized_keys 修改文件权限

重启服务 service sshd restart

此时每个节点都保存了所有的公钥,节点之间也就可以ssh免密登录了(第一次仍然需要密码)

参考:https://blog.csdn.net/qq_43605654/article/details/90746563 ,略做修改。

2.6 启动hadoop集群
在master上运行一次 hdfs namenode -format
在hadoop根目录下,sbin/start-all.sh。

启动完成后,master上输入jps应有 namenode,secondarynamenode,resourcemamage,
worker上输入jps应有 datanode,nodemanager。

用浏览器看看 master:9870
->DataNode
在这里插入图片描述
两个节点active。

试试放点东西:

bin/hdfs dfs -mkdir /test
bin/hdfs dfs -put test.txt /test
bin/hdfs dfs -ls /

Hadoop完全分布式集群搭建(Hadoop3.3.0)_第3张图片
证明完全分布式集群基本搭建成功。

全文完。

后记:
踩了坑看看logs。

你可能感兴趣的:(大数据,分布式,hadoop,大数据,linux,ssh)