03.Haoop 全分布式搭建步骤
在搭建的过程中一定要记得做一些快照,这样方便回滚。否则搭建错的时候就要从来来过,特别麻烦!
我主要用 1台windows电脑(设置3个虚拟机,即3个节点) 2台阿里云服务器(2个节点)
1.网络设置问题
Windows 上 VMWARE + CENTOS 7 使用 Bridge 桥接的方式 设置网络。
可参考上一篇 02.Haoop 虚拟机 桥接与NAT之间区别 及桥接设置 。
简单回顾一下,设置的几个命令
1)设置 ip 地址等
vi /etc/sysconfig/network-scripts/ifcfg-ens33
也可能是 ifcfg-eth0, 不放心的话可以 到 network-scripts 里面去看一下,一般是第一个文件
2) 设置 网络的名称 hostname,这样相互 ping 就可以用名称来 ping
vi /etc/sysconfig/network
注意取名字的时候最好不要有 " _ ", 比如 node_01 ,最好取成 node01 否则可能 Hadoop 运行不起来
GATEWAY 的话可写可不写,这里我把最后2位 隐去了。
3 )要让 每个节点(虚拟机)都知道其他节点的名称
vi /etc/hosts 把每个节点的 IP地址 和 名称 追加在后面。
在 ::1 这里输入 o (欧),就可以直接换行插入。
4)设置完之后需要启动一下。
service network restart
也建议 poweroff 一下,再重新开启,因为这样 hostname 就会变换
最后打开之后 互相ping 一下,以及看一下 hostname 节点的名字是否已经变成自己设置的了。
我用xshell, 打开了 检查了几个地方用红色标出来了。
a. 名字是否已经变为nodewind04
b.ping www.baidu.com 是否可以连通百度
c. ping nodewind05 是否可以连通 其他节点,并且用其他节点的名字来ping 通
d. 阿里云的服务器也顺便检查了一下是否可以ping 通
5) 检查是否关闭防火墙
a. 关闭防火墙 sevice iptables stop
b.设置开机不启动防火墙 chkconfig iptables off
6)检查是否关闭安全模式
vi /etc/selinux/config 设置 SELINUX=disabled
到这里网络设置就基本做完了,记得每个节点都需要把这些网络设置都完成。记得定期的做一下快照!
2. ssh 设置免密登入
免密登入主要是 Hadoop Namenode 可以无需密码访问各个节点。
在这里我选择了 Hadoop官网的 id_rsa.pub 的**。
1) ssh localhost 先用 ssh 进入 localhost 此时需要密码,用 ll -a 就可以看到隐藏文件 .ssh 文件
2) 需要在 ssh 中生存公钥,以及 把 公钥放入 authorized_keys 中,
a.ssh localhost 进入 ssh
b.ssh-****** -t rsa -P '' -f ~/.ssh/id_rsa 生存公钥
c.cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 把公钥追加到 authorized_keys 中去
d.chmod 0600 ~/.ssh/authorized_keys 如果权限有问题,需要修改权限。如果没有问题可以不用这句
e. exit 退出,再试一次 ssh localhost 是否可以免密进入
f. 把 Namenode 的公钥分发给 其他的节点,
在cd .ssh 目录下 scp id_rsa.pub nodewind05:`pwd`/nodewind04.pub
注意 nodewind04,nodewind05 都要先登入 ssh localhost,然后再输入scp 命令!!!
即把nodewind04 上的 id_rsa 公钥 发送到 nodewind05 上,并且改名为 nodewind04.pub
g. 在 nodewind05 上检查一下是否有 nodewind04.pub 文件,也需要追加一下 authorized_keys
cat nodewind04.pub >> authorized_keys
h. 在nodewind04 节点上,exit 退出localhost之后,ssh nodewind05
图片版说明:
- ssh localhost
- ll -a
- a,b 的指令,生成公钥:ssh-****** -t rsa -P '' -f ~/.ssh/id_rsa
- c 的指令,追加到 authorized_keys 中 :cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 指令 cd .ssh 里查看 是否 公钥和文件是否已经生成
- 发送 nodewind04 的公钥 到 nodewind05:
- nodewind04 和 nodewind05 都先 ssh localhost , 进入 cd .ssh
- 在 nodewind04 中发送公钥 scp id_rsa.pub nodewind05:`pwd`/nodewind04.pub
- 在 nodewind05 中查看 是否有 nodewind04.pub
- 在 nodewind05 中, 把公钥追同样也追加到 authorized_keys中去:cat nodewind04.pub >> authorized_keys
- 在 nodewind04节点 ,先退出nodewind04,再登入 ssh nodewind05 ,此时应该是免密登入。
- 最后每个 节点都需要用 做免密登入
3. 每个节点需要统一时间
在每个节点上设置
1)sudo yum install ntp
2) systemctl enable ntpd:
3) 修改启动参数,允许ntp服务在系统时间误差较大时也能正常工作
vi /etc/sysconfig/ntpd 设置 OPTIONS= "-g -x"
4)重新启动服务
service ntpd restart
5)将系统时间改为上海时间
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
6)查看时间 date
4. xshell 上传文件的设置
在每个节点上设置
1) yum -y install lrzsz
2) rpm -qa lrzsz
3) 使用 rz -y 命令上传文件,自动跳出上传窗口
4) 创建目录 mkdir software (自定义的名称)以后的压缩包就放在这个里面
5) 官网下载 hadoop-2.7.6.tar.gz 和 jdk-8u211-linux-x64.tar.gz 并使用 rz -y 命令上传