Hadoop集群(高可用)

来源:互联网 发布:北京网络 编辑:程序博客网 时间:2024/04/29 23:52
井老师的博客:Hadoop集群 (高可用) 搭建过程:
http://blog.csdn.net/seal5183/article/details/73877513
已经过无数人进行搭建试验,成功率100%

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

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


2.hadoop-daemon.sh start journalnode 在从机上分别进行执行,启动journalnode 日志节点 ,jps查看会有journalnode

(ps:注意只有第一次需要这么启动,之后启动hdfs会包含journalnode)

3.hdfs namenode -format 在hadoop-node1上进行格式化HDFS,会生成tmp文件夹,然后将tmp文件夹拷贝给hadoop-node2,否则hadoop-node2上的namenode启动不了。

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


4.hdfs zkfc -formatZK 在hadoop-node1进行格式化zkfc 即zookeeper错误覆盖控制器,


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


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集群(高可用)搭建完成

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

关闭服务:
第一步:stop-dfs.sh
正常关闭:

出现小bugge的关闭:但不影响关闭


第二步:stop-yarn.sh


第三步:在hadoop-node2上:yarn-daemon.sh stop resourcemanager

操作完以上关闭命令,就可以关闭机子啦!

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

以下为在idea中因操作失误造成的错误 以及 解决方案:
1.

错误信息: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中添加一下代码即可:


3.
linux系统中进行idea开发
如果报此错误:


需要在idea所在的用户中vi /etc/hosts Master主机的ip地址进行配置。


4.
出现此异常:

解决方案:


5.

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