Hadoop环境搭建-3. Hadoop集群版

在 Hadoop 单机版基础上,搭建一个简单的集群版

0. 规划

这次搭建的是一个主机和两个从机,也就是只有两个node节点

也可以让主机上有node节点,之后会说

主机名cluster规划
masternamenode,secondarynamenode,ResourceManager
slave1Datanode, NodeManager
slave2Datanode, NodeManager

首先克隆一台单机版虚拟机

1. 克隆虚拟机

虚拟机右键–>管理–>克隆,选择创建完整克隆

这里克隆几个要看你创建的集群规模,我便克隆三台,一台主机,两台从机

image

2. 启动虚拟机,改动静态ip

修改 master、slave1、slave2 三台虚拟机的 IP

还是到 /etc/sysconfig/network-scripts 文件夹下改动 ifcfg-eno16777736 文件

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

改动如下:
image

这个虚拟机的ip只要是没有使用的即可

然后保存,重启服务

systemctl restart network

3. 在hosts文件修改ip映射

写入三台主机的ip地址和主机名,找到到hosts文件进行编辑

vim /etc/hosts
192.168.27.101 master
192.168.27.102 slave1
192.168.27.103 slave2

这里改动过之后最好重启虚拟机reboot,让其生效,这样最后配置ssh免密钥登录时不会出现异常

4. 修改 hostname

对 master、slave1、slave2 三台主机分别修改主机名

hostnamectl set-hostname master
hostnamectl set-hostname slave1
hostnamectl set-hostname slave2

5. 修改hadoop配置文件

进入到 /usr/hadoop/hadoop-2.9.2/etc/hadoop/ 下修改 core-site.xml 和 yarn-site.xml

三个虚拟机都要更改,也可以只修改一台之后发送

将之前的主机名改为现在的主机 master

5.1 core-site.xml 修改

image

改为

image

5.2 yarn-site.xml 修改

image

改为

image

5.3 更改 slaves 文件

还是在该文件夹下,更改slaves文件,三个虚拟机都需要更改

其实这些都可以在克隆前更改,再克隆,不过也可以配置好后再发送

vim slaves

改为:

# localhost

slave1
slave2

这里需要说明一下,如果你要主机也当作一个节点的话,那么在里面也要添加主机名称,这个文件就是告诉 hadoop 该启动谁的 datanode

如果发送的话就是

#会直接覆盖掉之前的
[root@master .ssh]# scp -r /usr/hadoop root@slave1:/usr/
[root@master .ssh]# scp -r /usr/hadoop root@slave2:/usr/

6. 集群版ssh免密钥登录

三台虚拟机都需要操作

# 每台机器先使用ssh执行一下,以在主目录产生一个.ssh 文件夹
ssh master # master 为主机名
#每台机器先使用ssh执行一下,以在主目录产生一个.ssh 文件夹
[root@slave1 ~]# ssh slave1
The authenticity of host 'slave1 (192.168.27.102)' can't be established.
ECDSA key fingerprint is 26:e5:4a:4a:55:1e:ee:cf:51:23:0d:d8:75:f0:0d:02.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'slave1,192.168.27.102' (ECDSA) to the list of known hosts.
root@slave1's password: 
Last login: Tue Feb 25 17:59:40 2020 from 192.168.27.1


# 进入到 ~/.ssh (~ 实质是为 root 建立免密)
[root@slave1 ~]# cd ~/.ssh/

# 输入以下命令,一路回车,用以产生公钥和秘钥
[root@slave1 .ssh]# ssh-keygen -t rsa -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
1b:21:bc:c6:59:a2:df:89:4a:68:34:1b:2f:7d:c2:a5 root@slave1
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|     .           |
|      + o        |
|     o * .       |
|  + . * S        |
| . O = o +       |
|  = E + +        |
| . o +           |
|    
+-----------------+
[root@slave1 .ssh]# cp id_rsa.pub authorized_keys

如果 more authorized_keys 查看如下:

[root@slave1 .ssh]# more authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDKdHLDeZMQnYttxmR86WxyK627XksHxmiqovo/tWYcdpVN1DcAKRNvDa5dr0Yxer0E1O
qol0fIKu1Qak+Rv7y8K1HymTFuo6E0UWNS6MM3jn0Bv2F+9gN4tn+VrtSn2HOqnnI4g+1u4aPvxYc9GGU5xyQ/KkXiQc3xdmx136OkqzBJj
NNwf41ekU1clzpZcVnFkDf4bB6hLf56XGVJWnyHHSBxbU85PeCgih/iXyABxh+LwwCFHMoDdpZyi4p/+qPpHpyWy7ipEUnGK162u7dKdtLn
TL554h2gP/vpK4zxQRmC1XubM5w4nUFEEWeZquU9viyEReoDLo4uzddtESZ root@slave1

@后是你的主机名则表示正常,否则重新进行上几步进行覆写

然后分别把从机 slave1 和 slave2 的 authorized_keys 文件进行合并(最简单的方法是将其余三台 slave 主机的文件内容追加到 master 主机上)

#将所有的 authorized_keys 文件进行合并(最简单的方法是将其余三台 slave 主机的文件内容追加到 master 主机上)
[root@slave1 .ssh]# cat ~/.ssh/authorized_keys | ssh root@master 'cat >> ~/.ssh/authorized_keys'
[root@slave2 .ssh]# cat ~/.ssh/authorized_keys | ssh root@master 'cat >> ~/.ssh/authorized_keys'


#查看 master 上的 authorized_keys 文件内容,类似如下即可
[root@master .ssh]# more authorized_keys 

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDx53xU7H7mRHSi6jLFKxiCaTeUpkj1x64kLFmyfAs0ruccZt3EpIYiaCGg6O68sKOX32M
T+UzvxePJ/rLbo+ZVV8FG+jH4wb7MMdp1lBtbspFytAeGNrAgIW5VOX81CDTaV6hvVrJCl6aXKpc5d4xnHwkTMrQ2Tv6Jqe3C5HR+xdn7rU
KFEsIzzJoD8KwudZkCVlzFX+B+UcDdaaOZsrrzPR8TpXRjUHSDQ6nbjMKtDh08jrndtRQd1F9hmfkOBevj9WHoe7G5Ngh5ssq9rPflV7Gk/
SMwe7QtrKPIa7JiXulrlaPm109c8R5H/fHUehjYl1HcP2P67QcdJ1VYkK7V root@master
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDKdHLDeZMQnYttxmR86WxyK627XksHxmiqovo/tWYcdpVN1DcAKRNvDa5dr0Yxer0E1O
qol0fIKu1Qak+Rv7y8K1HymTFuo6E0UWNS6MM3jn0Bv2F+9gN4tn+VrtSn2HOqnnI4g+1u4aPvxYc9GGU5xyQ/KkXiQc3xdmx136OkqzBJj
NNwf41ekU1clzpZcVnFkDf4bB6hLf56XGVJWnyHHSBxbU85PeCgih/iXyABxh+LwwCFHMoDdpZyi4p/+qPpHpyWy7ipEUnGK162u7dKdtLn
TL554h2gP/vpK4zxQRmC1XubM5w4nUFEEWeZquU9viyEReoDLo4uzddtESZ root@slave1
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDH7qis2UUgPsaT4LkdQylwC66Rm+VDEBe7dIKo52LVlqL4ws9IZ9YRV+htvTda+PWbQ9L
ppf+tZRfM1Cz5MbEvcvaYDRsfsqz8KVVAtT71bRmZC5p8q+OgcOsq1o4BWdAl+zHH+rTAizjabELOzVnhATnA52AxSrFki/mc8QDitzTcFF
2NUeskhZC5BhOL5miF/+mTc1Y/VG3lzB4rhnPJVnA1bay9HalaBaxVnx3+OZhJojUKxRGs7qUZih+OVxqMvMdHeIthvk+TwUkt/EfOMmwzW
glK8X6Xtk0w0AP+z8d90mwFL8BMV937RWsR2nMpOf5dPQjnVDqOM+mGN82z root@slave2

然后分发主机上的密钥 authorized_keys

#将master上的authorized_keys文件分发到其他主机上
[root@master ~]# scp ~/.ssh/authorized_keys root@slave1:~/.ssh/
[root@master ~]# scp ~/.ssh/authorized_keys root@slave2:~/.ssh/

进行验证免密成功…

7. 重新格式化 namenode

三台虚拟机都需要

hadoop namenode -format

8. 启动 Hadoop

在主机 master 上直接启动 start-all.sh 从机会跟着启动

[root@master .ssh]# start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [master]
master: starting namenode, logging to /usr/hadoop/hadoop-2.9.2/logs/hadoop-root-namenode-master.out
slave1: starting datanode, logging to /usr/hadoop/hadoop-2.9.2/logs/hadoop-root-datanode-slave1.out
slave2: starting datanode, logging to /usr/hadoop/hadoop-2.9.2/logs/hadoop-root-datanode-slave2.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/hadoop/hadoop-2.9.2/logs/hadoop-root-secondarynamenode-master.out
starting yarn daemons
starting resourcemanager, logging to /usr/hadoop/hadoop-2.9.2/logs/yarn-root-resourcemanager-master.out
slave2: starting nodemanager, logging to /usr/hadoop/hadoop-2.9.2/logs/yarn-root-nodemanager-slave2.out
slave1: starting nodemanager, logging to /usr/hadoop/hadoop-2.9.2/logs/yarn-root-nodemanager-slave1.out

然后分别在主机、从机上查看 jps,结果应该与规划相同

主机名cluster 规划
masternamenode,secondarynamenode,ResourceManager
slave1Datanode, NodeManager
slave2Datanode, NodeManager

处理启动 Hadoop 集群之后,master 机器的 nameNode 节点启动了,但是 slave 机器的 dataNode 节点没有启动的情况

9. 验证 Hadoop 集群启动成功

在 http://主机master的ip:50070 和 http://主机master的ip:8088 分别查看

本地中为:

  • http://192.168.27.101:50070
  • http://192.168.27.101:8088

image

image

若是如此便启动成功了,至此,简单的hadoop集群版搭建完成了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值