分享

hadoop HA搭建时出现的问题,大神帮忙看看

qing_D7BWs 发表于 2017-1-20 20:02:32 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 9347
报错信息如下:
org.apache.hadoop.hdfs.qjournal.client.QuorumException: Got too many exceptions to achieve quorum size 2/3. 3 exceptions thrown:
192.168.246.130:8485: Call From Master/192.168.246.128 to Slave01:8485 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
192.168.246.132:8485: Call From Master/192.168.246.128 to Slave03:8485 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
192.168.246.131:8485: Call From Master/192.168.246.128 to Slave02:8485 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
        at org.apache.hadoop.hdfs.qjournal.client.QuorumException.create(QuorumException.java:81)
        at org.apache.hadoop.hdfs.qjournal.client.QuorumCall.rethrowException(QuorumCall.java:223)
        at org.apache.hadoop.hdfs.qjournal.client.AsyncLoggerSet.waitForWriteQuorum(AsyncLoggerSet.java:142)
        at org.apache.hadoop.hdfs.qjournal.client.QuorumJournalManager.selectInputStreams(QuorumJournalManager.java:471)
        at org.apache.hadoop.hdfs.server.namenode.JournalSet.selectInputStreams(JournalSet.java:278)
        at org.apache.hadoop.hdfs.server.namenode.FSEditLog.selectInputStreams(FSEditLog.java:1508)
        at org.apache.hadoop.hdfs.server.namenode.FSEditLog.selectInputStreams(FSEditLog.java:1532)
        at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:652)
        at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:294)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:975)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:681)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:585)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:645)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:812)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:796)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1493)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1559)



主节点ResourceManager可以启动,备用节点的ResourceManager不能启动,报如上错误,另外,除了ResourceManager不能启动,其它一切都正常,刚学习hadoop,望各位大神解惑。

已有(6)人评论

跳转到指定楼层
arsenduan 发表于 2017-1-25 20:20:40
我们在执行start-dfs.sh的时候,默认启动顺序是namenode>datanode>journalnode>zkfc,如果journalnode和namenode不在一台机器启动的话,很容易因为网络延迟问题导致NN无法连接JN,无法实现选举,最后导致刚刚启动的namenode会突然挂掉一个主的,留下一个standy的,虽然有NN启动时有重试机制等待JN的启动,但是由于重试次数限制,可能网络情况不好,导致重试次数用完了,也没有启动成功,

A:此时需要手动启动主的那个namenode,避免了网络延迟等待journalnode的步骤,一旦两个namenode连入journalnode,实现了选举,则不会出现失败情况,

B:先启动JournalNode然后再运行start-dfs.sh,

C:把nn对jn的容错次数或时间调成更大的值,保证能够对正常的启动延迟、网络延迟能容错

在hdfs-site.xml中加入,nn对jn检测的重试次数,默认为10次,每次1000ms,故网络情况差需要增加,这里设置为30次

    <property>
         <name>ipc.client.connect.max.retries</name>
         <value>30</value>

    </property>

回复

使用道具 举报

qcbb001 发表于 2017-1-21 11:21:49
测试下8485这个端口是否是通的
[mw_shl_code=bash,true]telnet Slave02 8485[/mw_shl_code]
前提先安装
[mw_shl_code=bash,true]sudo yum install telnet -y[/mw_shl_code]
回复

使用道具 举报

qing_D7BWs 发表于 2017-1-22 22:51:24
你好,大哥,以下是测试结果
[root@Master 22:46:34 /data]# telnet Slave02 8485
Trying 192.168.246.131...
Connected to Slave02.
Escape character is '^]'.
大神费神帮忙看看
回复

使用道具 举报

levycui 发表于 2017-1-25 10:17:08
检查配置,报错感觉是journal问题,最少需要3个
回复

使用道具 举报

langke93 发表于 2017-1-25 20:21:26
先启动JournalNode或者再次启动NameNode,可能JournalNode并没有准备好,而NameNode已经用完了所有重试次数。


回复

使用道具 举报

ggggying12 发表于 2017-2-22 17:14:42
好好学习,天天向上
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条