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