Hadoop完全分布式环境搭建
ps:本人是按照尚硅谷的教程搭建的,版本hadoop2.7,centos版本6,一台主机,两台从机。
一.版本问题
1.尽量使用hadoop版本2,尽量不要使用最新版本3。因为会出现无法解决的问题,老师和网上给的配置方案基本都是基于hadoop2.6或hadoop2.7,所有用hadoop3在群起集群时会出现问题。
二.虚拟机准备工作
1.关闭虚拟机防火墙,以免出现因防火墙出现的问题(比如后面时间同步时):
查看防火墙状态:service iptables status
永久关闭防火墙:chkconfig iptables off (重启后生效)
2.设置静态IP
需查看自己VM的虚拟网络net8的IP地址以及网关。(重启后生效)
3.修改主机名,添加主机名与IP的映射。映射后可以直接ping主机名。(重启后生效)
查看hosts(W / L)
C:\Windows\system32\drivers\etc hosts
如果没做,cmd不能直接ping 主机名;Web访问不能直接用主机名。
4.安装配置jdk、hadoop;
(1).可以把虚拟机默认的jdk卸载。
(2). 解压完后,修改jdk,hadoop文件名,方便环境变量配置(多出使用)。
mv 原文件名 新文件名
5.安装Xshell,无法上传文件到Linux:
(输入rz命令无响应)
安装lrzsz方便两个不同系统上传(rz)、下载(sz)文件:
yum provides */rz
yum install -y lrzsz
6.克隆3台机器:(克隆后不能马上使用这三台机器)
修改内容:
(1)vim /etc/udev/rules.d/70-persistent-net.rules
dd删除
shift+$,改eth1为eth0
复制地址
注意:service network restart
(2)vim /etc/sysconfig/network-scripts/ifcfg-eth0
粘贴HWADDR
修改IPADDR为本机地址
(3)vim /etc/sysconfig/network
修改主机名
查看hosts(W / L)
注意:重启生效(reboot)
二.集群配置
1.忘记拷贝配置文件
方法一:scp(secure copy)安全拷贝:scp可以实现服务器与服务器之间的数据拷贝
拷贝hadoop安装文件到集群slave节点
scp -r /usr/local/hadoop-2.6.5 slave1:/usr/local
scp -r /usr/local/hadoop-2.6.5 slave2:/usr/local
scp -r /usr/local/hadoop-2.6.5 slave3:/usr/local
方法二. 在主机上编写xsync集群分发脚本:
(1)解决集群文件配置的一致性。
需求:循环复制文件到所有节点的相同目录下,可以同步所有结点的文件。
方便修改,不用挨个去改(比如将NameNode等分开放)。
(2)创建脚本:
在/home目录下创建bin目录,并在bin目录下xsync创建文件
(3)修改权限:
chmod 777 xsync
2.多次格式化NameNode导致NameNode和DataNode进程不能同时工作:
格式化NameNode,会产生新的集群id,导致 DateNode的集群id不一致,集群找不到以往数据。所以,第二次格式NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode。
3.SSH没有配置好。
所有机器都要拷贝,拷贝后生成Authorized_keys(授权keys)文件,因为只要需要判断要不要密码,都会去找Authorized_keys文件。
4.配置文件修改不仔细。
四.启动集群
1.jps不生效。
原因:全局变量hadoop、java没有生效。解决办法:需要source /etc/profile文件。
2.(个别机器)start(stop)-all.sh 无法启动Recesourmanager
修改:start(stop)-yarn.sh
将daemon加s
五.Web端口
1.hadoop版本3端口为:9870
2.hadoop版本2端口为:50070