Hadoop集群搭建

上次说了Hadoop集群单机版的搭建,这次来依照单机版的基础搭建一个简单的集群版

规划

这次搭建的是一个主机和两个从机,也就是只有两个node节点,也可以让主机上有node节点,之后会说

主机名 cluster规划
master namenode,secondarynamenode,ResourceManager
slave1 Datanode, NodeManager
slave2 Datanode, NodeManager

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

克隆虚拟机

虚拟机右键–>管理–>克隆,选择创建完整克隆,
这里克隆几个要看你创建的集群规模,我便克隆三台,一台主机,两台从机.

Hadoop集群搭建_第1张图片

然后启动虚拟机,改动静态ip

这个需要三台虚拟机都改动

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

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

前面配置单机版的时候,如果觉得vi的命令不好用,可以安装vim命令 yum -y install vim之后就可以使用vim命令了.比vi编辑命令更加清晰

改动如图:

Hadoop集群搭建_第2张图片
改为
Hadoop集群搭建_第3张图片
这个虚拟机的ip只要是你没有使用的即可
然后保存,重启服务

systemctl restart network

接下来使用Xshell工具分别连接三台虚拟机(没有的去官网下载,有免费版本),Xshell的优点在于你可以随意的复制粘贴命令语句

在hosts文件修改ip映射

找到到hosts文件进行编辑

vim /etc/hosts

写入三台主机的ip地址和主机名
Hadoop集群搭建_第4张图片

192.168.134.154 master
192.168.134.155 slave1
192.168.134.156 slave2

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

修改hadoop配置文件

如果你的主机名还是单机版的.可以不用更改

然后进入到 /usr/hadoop/hadoop-2.7.3/etc/hadoop/下修改core-site.xml和yarn-site.xml , 三个虚拟机都要更改,也可以只修改一台之后发送
将之前的主机名改为现在的主机 master
如图
Hadoop集群搭建_第5张图片
改为
Hadoop集群搭建_第6张图片

将yarn-site.xml内的
Hadoop集群搭建_第7张图片
改为
Hadoop集群搭建_第8张图片

当然,如果你的主机名还是用的单机版的,那么上述两步可以不改

接下来更改slaves文件

更改slaves文件

还是在该文件夹下
更改slaves文件
三个虚拟机都需要更改(其实这些都可以在克隆前更改,再克隆,不过也可以配置好后再发送)

vim slaves

改为
Hadoop集群搭建_第9张图片
这里需要说明一下,如果你要主机也当作一个节点的话 , 那么在里面也要添加主机名称,这个文件就是告诉hadoop该启动谁的datanode

如果发送的话就是

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

之后最重要的是ssh免密登录的配置

集群版ssh免密钥登录

三台虚拟机都需要操作

进入到~/.ssh

#每台机器先使用ssh执行以下,以在主目录产生一个.ssh 文件夹
ssh master

创建 ,然后进入 cd ~/.ssh


#输入以下命令,一路回车,用以产生公钥和秘钥

[root@master .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:
SHA256:6YO1h1emM9gcWvv9OT6ftHxLnjP9u8p25x1o30oq3No root@master
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|                 |
|         .       |
|        S o o    |
|       + O *  .  |
|      . B.X. o.+.|
|         +o=+=**%|
|          .oEo*^^|
+----[SHA256]-----+
#将每台机器上的id_rsa.pub公钥内容复制到authorized_keys文件中
[root@master .ssh]# cp id_rsa.pub authorized_keys

如果more authorized_keys 查看如图
在这里插入图片描述
@后是你的主机名则表示正常,否则重新进行上几步进行覆写

然后分别把从机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 AAAAB3NzaC1yc2EAAAADAQABAAABAQC5iw8+LlLxo0d77uaTChOKKJqfMHzp2jgzqV2hFAneFXqqWmr
Z4/FrMUPenmdss19bP4Up9G7PGbJu29yZDvkDwlmuqnVajYyDOsCl7PPXPWXMIlxMGUHgSXLnQQi6QnWp04vJKD
s0EbiRTd0ZYCSQefzJcZ8jbQ7bLYt6jtil7FfUupTdHTeexKKd8Mq3K7YFZHumKvhzs6wWiM+n41jANS083ss3O
YmAdO2cU0w1BhLVvJhdzd6fNG3RXVCXI2v0XxCUHiqI9Oewl2qPOfKzeyy09bJxo371Ezjmt8GMrkA/Ecepkvx1
2qwNzC9bSPLfbnPWVo2gIxe4mMaFqCFJ root@master
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3CkB3Jejavt+yFphsbciktWciJmbcUBOv3ZLPVLW18ZxXGZK
vG50EPXo/4By7P6IRW0wCa5YuckQEW+q6kmSatxqJ8e/K9a1mAk13N4f7V7M71Nn8IkujlF3gHYjKrmnEWpGJCy
URzywIQTRArlIac1xj2SeM6q+gTMV9WrAKJupIRHli+W0kHVaYHNdKl7KMUT4KVrSl+h4wFwAd7Tcyj7JIbU
cCCL6o/v/LqGFwpcJfbfUsuKJJho+tImh41j7mSXR8kRbTSZkcq5KX+iANrANwOHZ58tV5KXmMQjuVq7aJ985C1
6hHssB6zq/zjAxpxAyQIeE8Incc8U8ix root@slave1
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC//uaMbzbkYqxdgZJSdq+gdQYldzMQ7D3SxsUaNO5oVnVOszw
bNnmL8vp1EUUehabQHPCAvCmLKUPXzfcxlyJEF/pnY77u4ySwsRVEpHvsDZbrclgCOrS6hW00sSx303KHLOgX
70LfrmnohfUhvTxajzLXT+C8f5ZfTZ8meKD73HKl16jRwZQ8YhW9GUyuCkgQTGtKtTKPsRUd9LpAc/7/u8xvvvNvTYPxgyTJcUMzGSOHh8J3upI54ykY0FgBkjs1fCUaDalxAgsHw9B1iyx706WbcT6ymiQVMKGnnnM6k2KPvUvfD
0swVfUSG+4ZsYSRHRTgWuiBbHoIr7DVd root@slave2

然后分发主机上的密钥 authorized_keys

#将master上的authorized_keys文件分发到其他主机上

[root@master .ssh]# scp ~/.ssh/authorized_keys root@slave1:~/.ssh/

[root@master .ssh]# scp ~/.ssh/authorized_keys root@slave2:~/.ssh/

重新格式化namenode

三台虚拟机都需要

hadoop namenode -format

启动hadoop并验证是否成功

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

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

主机名 cluster规划
master namenode,secondarynamenode,ResourceManager
slave1 Datanode, NodeManager
slave2 Datanode, NodeManager

若slave的datanode没有启动

如果发现从机的datanode没有启动
首先在主机master停止

stop-all.sh

然后进入到从机的/usr/local/hadoop/tmp/dfs/data

cd /usr/local/hadoop/tmp/dfs/data

也就是hdfs-site.xml文件中dfs.datanode.data.dir的路径,data的存放位置,将其中的current删除

rm -rf current/

然后重新初始化namenode 再重新启动hadoop即可

hadoop namenode -format

start-all.sh

然后在http://主机master的ip:50070和http://主机master的ip:8088分别查看
Hadoop集群搭建_第10张图片

Hadoop集群搭建_第11张图片

Hadoop集群搭建_第12张图片

若是如此便启动成功了

至此,简单的hadoop集群版搭建完成了

接下来会进行java代码操作hadoop文件上传下载删除的操作,看之后的blog

你可能感兴趣的:(大数据)