Hadoop HA使用中遇到的坑
来源:互联网 发布:js判断所有radio选中 编辑:程序博客网 时间:2024/05/18 03:44
之前笔者一直用的一个master一个slave的集群,后来给笔记本加了个内存条后,加上开始学习zookeeper,开始频繁使用两个master,3个slave的高可用集群了。之前以为没有什么区别,但是使用中还是遇到了不少的小坑。
1. 先说集群启动顺序
**
配置好第一次启动:
**
1.每个slave启动zookeeper服务,执行zkServer.sh start,jps可以看到多了QuorumPeerMain进程
2.每个slave启动journalnode,执行hadoop-daemon.sh start journalnode,jps可以看到多了
JournalNode进程
3.格式化HDFS,在一个master上执行hdfs namenode -format,如果看到succesfully formated就表示成功了(注意不要重复格式化),然后将生成的tmp目录拷贝到backup master对应的目录下。`
<property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop-2.7.3/tmp</value> </property>
`
4.格式化ZKFC,在node1上执行hdfs zkfc -formatZK。(如果集群没有配置高可用的话,不需要错误恢复,所以也就不要格式化了)
5.启动HDFS,在master上执行,start-dfs.sh,jps可以看到多了namenode(on all master)/datanode(on all slave)进程,DFSZKFailoverController进程
6.启动YARN,在master上执行,start-yarn.sh,jps可以看到多了resourcemanager(on master)/nodemanager(on slave)
7.backup master的resourcemanager需要手动单独启动:执行yarn-daemon.sh start resourcemanager,此机器上jps可以看到多了resourcemanager进程
以后集群启动:
- all slave —-> zkServer.sh start
- one master —->start-dfs.sh
- one master —–>start-yarn.sh
backup master —->yarn-daemon.sh start resourcemanager
正常集群启动后,
namenode上的jps后的进程有:
2648 ResourceManager
2553 DFSZKFailoverController
3036 NameNode
3325 Jpsdatanode上的jps后进程有:
2353 NodeManager
2200 DataNode
2264 JournalNode
2137 QuorumPeerMain
2526 Jps2.集群中遇到的问题
1.两个namenode都为standby状态
用命令行强制转换一个为active状态(最后master为想要转换成active的namenode名称)
hdfs haadmin -transitionToActive –forcemanual master2.刚启动的时候 jps 看到了NameNode,但是隔了一两分钟,再看NameNode就不见了。
查看日志发现以下报错信息:
org.apache.Hadoop.ipc.Client:Retrying connect to server
通过分析日志,感觉上应该不是配置有问题,只是namenode和JournalNode上的通信出了问题,这个时候我手动重新启动namenode.
./hadoop-daemon.sh start namenode
发现就启动成功了,并且很稳定。通过各种查,看网上大致说法为:
NameNode作为JournalNode的客户端发起连接请求,但是失败了,然后NameNode又向其他节点依次发起了请求都失败了,直至到了最大重试次数。说明JournalNode并没有准备好,而NameNode已经用完了所有重试次数。
解决办法,根据各自的网络情况,修改重试的次数和时间。
修改core-site.xml中的ipc参数
<property> <name>ipc.client.connect.max.retries</name> <value>20</value> <description> Indicates the number of retries a clientwill make to establisha server connection. </description> </property> <property> <name>ipc.client.connect.retry.interval</name> <value>5000</value> <description> Indicates the number of milliseconds aclient will wait for before retrying to establish a server connection. </description> </property>
之前自己遇到了,花费了很多时间才解决,现在记录在这里,希望对以后的自己或者是新人小白能有所帮助。
- Hadoop HA使用中遇到的坑
- spark结合Hadoop2.2.0 HA使用中遇到的问题
- Hadoop的HA机制
- Hadoop HA的理解
- Hadoop HA的理解
- Hadoop 的HA机制
- Hadoop的HA实现
- Hadoop HA的搭建
- Hadoop的HA机制
- Hadoop HA的部署
- 搭建Hadoop集群中遇到的坑
- 『hadoop』hadoop 安装中遇到的坑
- hadoop使用datanode做ha
- hadoop中使用distributed cache遇到的问题
- hadoop中使用python写mapreduce遇到的问题
- hadoop+hive使用中遇到的问题汇总
- hadoop中namenode非HA模式的工作机制
- hadoop中namenode HA起不了的问题解决
- ZooKeeper学习第二期--ZooKeeper安装配置
- 【unity5学习记录】 raycast光线投射碰撞 17.8.5
- 2017年8月5日 23:00:15
- Easyui 中dialog小的demo
- 496. Next Greater Element I
- Hadoop HA使用中遇到的坑
- 【poj3461】Oulipo 【BAPC 2006 Qualification】
- Android自定义拍照、录像
- 用javase开发宠物商店
- java 信息熵 加密
- Struts2 官方教程:处理表单(Processing Forms)
- 鸽巢排序:对一组集中且重复的数据进行排序
- SQL四舍五入与截断 除余
- ubuntu安装chrome浏览器