大数跨境
0
0

【技术】三台PC服务器部署Hadoop HA(Hadoop 高可用性架构)

【技术】三台PC服务器部署Hadoop HA(Hadoop 高可用性架构) 鹏锐技术
2018-04-16
0
导读:之前是在自己电脑上部署的hadoop集群,但并未涉及到HA配置,这次将集群迁移到PC服务器,但是问题来了,只

之前是在自己电脑上部署的hadoop集群,但并未涉及到HA配置,这次将集群迁移到PC服务器,但是问题来了,只有三台,但是我还想配置HA,PC服务器是CentOS6.5,原来想着在上边部署VM,从而部署HA集群,但经测试,未果,遂弃之,就想到了在三台机器上部署HA集群。

hadoop伪分布部署参考:

https://blog.csdn.net/gamer_gyt/article/details/46793731
hadoop单机版部署参考:

https://blog.csdn.net/gamer_gyt/article/details/46545303
zookeeper,hive,hbase的分布式部署参考:

https://blog.csdn.net/gamer_gyt/article/details/52032579
Spark,Sqoop,Mahout的分布式部署参考:

https://blog.csdn.net/gamer_gyt/article/details/52045663

步骤和部署hadoop集群

(https://blog.csdn.net/gamer_gyt/article/details/51991893)是一样的,只是这里加入了HA的一些配置,记录如下:

【关于HA架构的知识请移步该篇博客:Hadoop 容错之1.X的单点故障 到 2.X的HA和HDFS Federation:

https://blog.csdn.net/gamer_gyt/article/details/52383555】

一:架构说明

IP                            hostname               role

192.168.132.27       master1                  主节点

192.168.132.28       master2                  备份主节点

192.168.132.29       slaver1                    从节点


zookeeper的三个节点集群,部署在这三台机子上


二:部署Zookeeper

Hadoop HA的部署依赖于ZK来切换主节点,所以在部署Hadoop HA之前需要先把Zookeeper集群搞定,部署参考:

https://blog.csdn.net/gamer_gyt/article/details/52032579

三:部署HA

1:文件配置

除了配置文件mapred-site.xml,core-site.xml,hdfs-site.xml,yarn-site.xml之外和hadoo集群部署一样,这里不做陈述,可参考:https://blog.csdn.net/gamer_gyt/article/details/51991893

mapred-site.xml:

        core-site.xml       hdfs-site.xml:

yarn-site.xml:

2:启动服务,测试NameNode的自动切换

PS:一定要注意启动的顺序,否则会出现各种各样的错误,亲测

每台机器上启动Zookeeper:bin/zkServer.sh start 

zookeeper集群格式化(任意一个主节点上执行即可):bin/hdfs zkfc -formatZK 

每台机器上启动 journalnode:sbin/hadoop-daemon.sh start journalnode (如果这里不启动的话,在进行hdfs格式化的时候就会报错,同时这个进程只需在格式化的时候启动,后续启动服务则不需要)

hdfs集群格式化(master1上进行):bin/hadoop namenode -format

看到 “0” 表示成功了

master1机器上启动服务:sbin/start-dfs.sh      sbin/start-yarn.sh

执行jps查看进行如下(master1,master2,slaver1):     

       master1(192.168.132.27)的web界面显示如下:     

备用NN同步主NN的元数据信息(master2上执行): bin/hdfs namenode -bootstrapStandby

启动备用NN(master2上执行): sbin/hadoop-daemon.sh start namenode

执行jps(master2上执行):

Web访问:

        测试主NN和备用NN的切换:kill掉主NN进程  kill namenode_id

再次刷新master2对应的web,实现自动切换:

3:测试Resourcemanager自动切换

        访问主NN的8088端口如下:           备用NN的8088端口:

kill 掉主NN的resourcemanager服务再次访问从NN的8088端口               OK!大功告成

四:遇见的问题

1:NameNode格式化失败

误:failed on connection exception: java.net.ConnectException: Connection refused

解决办法:先启动Zookeeper集群,在用sbin/hadoop-daemon.sh start journalnode 启动各个NameNode上的JournalNode进程,然后再进行格式化

该错误参考博客:http://blog.csdn.net/u014729236/article/details/44944773

        2:Web显示live nodes 为 0        

        解决办法:注释掉机子上 hosts文件中的原本的两行        

3:master2的NameNode和 ResourceManager不能启动

       查看日志发现错误

       端口被占用了,这时候要修改yarn-site.xml 中       此时再次启动OK

4:NameNode不能自动切换

       hdfs-site.xml通过dfs.ha.fencing.methods控制自动切换的方法, sshfence是系统默认的并不能自动切换,这里可以换成

五:总结

在配置的过程中遇到了很多问题,参考了很多资料,但很多事情就是看着别人很顺利的完成,可是到了你这里就会出现各种错误,殊不知别人也是经历过各种调试才出的结果,所以不要灰心,在配置的过程中多看看日志,所有的错误都会在日志中显示,相信你会成功的。


本文转载自博客:                                                   https://blog.csdn.net/Gamer_gyt/article/details/52350528

您可以通过以下方式了解更多鹏锐技术详情:

☆请登录鹏锐技术公司官网:www.wiz.top

☆请致电鹏锐技术热线电话:0755-82776311

☆请扫描上方的二维码,关注鹏锐技术公众号

☆请微信公众号查找“鹏锐”关注鹏锐技术

【声明】内容源于网络
0
0
鹏锐技术
国内领先的工程全生命周期智慧解决方案及产品提供商,致力于为石油石化、火电核电、轨道交通、市政工程等资产密集型企业提供数字化、智能化软硬件产品,降低工程造价,缩短工期,提高工厂运行效率,提升工厂数字化及智能化水平。让信息化为企业创造价值。
内容 304
粉丝 0
鹏锐技术 国内领先的工程全生命周期智慧解决方案及产品提供商,致力于为石油石化、火电核电、轨道交通、市政工程等资产密集型企业提供数字化、智能化软硬件产品,降低工程造价,缩短工期,提高工厂运行效率,提升工厂数字化及智能化水平。让信息化为企业创造价值。
总阅读311
粉丝0
内容304