Hadoop集群(高可用)

井老师的博客:Hadoop集群 (高可用) 搭建过程:
已经过无数人进行搭建试验,成功率100%

namenode和datanode的比较:
相同点:
1.每台机器都放置相同的程序 (五个.xml文件)
2.每台机器都配置相同环境变量
 
不相同:
3.第一台机器能够无密码登录到2345的机器上
4.第二台机器能够无密码登录到1345的机器上
5.345的机器上配置zookeeper的配置文件zoo.cfj,并创建对应的myid文件

这里我将 在搭建过程中因操作不当所出现的错误以及解决方案做一下分享:
1.zkServer.sh start 在从机上分别进行执行,启动zookeeper服务,jps查看会出现仲裁节点 即:QuorumPeerMain
Hadoop集群(高可用)
Hadoop集群(高可用)

2.hadoop-daemon.sh start journalnode 在从机上分别进行执行,启动journalnode 日志节点 ,jps查看会有journalnode
Hadoop集群(高可用)
(ps:注意只有第一次需要这么启动,之后启动hdfs会包含journalnode)

3.hdfs namenode -format 在hadoop-node1上进行格式化HDFS,会生成tmp文件夹,然后将tmp文件夹拷贝给hadoop-node2,否则hadoop-node2上的namenode启动不了。
Hadoop集群(高可用)
(ps:如果退出时状态为1,则格式化hdfs失败,
解决方案:
将所有namenode和DataNode机子上的tmp文件夹全部删掉:rm -r tmp
删掉后再进行一次格式化即可。)
也有另一种情况:
可能是因为缓存的问题,如果第一次格式化,退出状态是1,在执行一次格
式化就好,但是如果第二次格式化,退出状态仍然是1,那就只能停掉所有
服务(stop-all.sh)任何切换到root用户下,reboot重新启动机子,从新操作。
拷贝:scp -r tmp [email protected]:~/hadoop-2.7.3/
Hadoop集群(高可用)

4.hdfs zkfc -formatZK 在hadoop-node1进行格式化zkfc 即zookeeper错误覆盖控制器,
Hadoop集群(高可用)

5.start-dfs.sh 在hadoop-node1上进行启动HDFS,
jps查看:
hadoop-node1:NameNode,DFSZKFailoverController
hadoop-node2:NameNode,DFSZKFailoverController
hadoop-node3:增加 DataNode
hadoop-node4:增加 DataNode
hadoop-node5:增加 DataNode
Hadoop集群(高可用)

6.start-yarn.sh 在hadoop-node1上进行启动resourcemanager
yarn-daemon.sh start resourcemanager 在hadoop-node2上单独开
启resourcemanager
jps查看:
hadoop-node1:增加 ResourceManager
hadoop-node2:增加 ResourceManager
hadoop-node3:增加 NodeManager
hadoop-node4:增加 NodeManager
hadoop-node5:增加 NodeManeger
Hadoop集群(高可用)

Hadoop集群(高可用)

以上一系列不出差错全部启动成功,证明hadoop集群(高可用)搭建完成

7.关闭dfs和yarn
严肃注意:
如果不按流程关闭服务,下次启动就会出现各种bugge
当然也有解决方案:
删掉所有机子上的tmp文件夹,重新进行一次格式化即可。

关闭服务:
第一步:stop-dfs.sh
正常关闭:
Hadoop集群(高可用)
出现小bugge的关闭:但不影响关闭
Hadoop集群(高可用)

第二步:stop-yarn.sh
Hadoop集群(高可用)

第三步:在hadoop-node2上:yarn-daemon.sh stop resourcemanager
Hadoop集群(高可用)
操作完以上关闭命令,就可以关闭机子啦!

悠久关闭防火墙
systemctl disable firewalld
 
setenforce 0  (ps:临时关闭)
 
悠久关闭防护进程
cd /etc/selinux/
vi config
更改:SELINUX=enforcingdisable

以下为在idea中因操作失误造成的错误 以及 解决方案:
1.
Hadoop集群(高可用)
错误信息:input路径出现错误
错误原因:user写成啦usr
解决方案:
即:hadoop fs -mkdir -p /user/hadoop
hadoop fs -mkdir /user/hadoop/input2
hadoop fs -put 文件名 user/hadoop/input2

2.
如果使用windows系统中的idea进行hadoop集群操作MapReduce时,出现
job.waitForCompletion(true)此句执行时出现false
解决方案:在mapred-site.xml中添加一下代码即可:
Hadoop集群(高可用)

3.
linux系统中进行idea开发
如果报此错误:
Hadoop集群(高可用)

需要在idea所在的用户中vi /etc/hosts Master主机的ip地址进行配置。
Hadoop集群(高可用)

4.
出现此异常:
Hadoop集群(高可用)
解决方案:
Hadoop集群(高可用)

5.
Hadoop集群(高可用)
报这个错,说明slaves文件被污染了
出错原因:在windows 系统下建立slaves文件,然后传到Linux系统中,slaves很容易被污染
解决方案:在Linux系统下,touch 或 vi 创建slaves文件即可