1. 程式人生 > >部署hadoop叢集ha模式常見的問題,以及解決方案

部署hadoop叢集ha模式常見的問題,以及解決方案

1.      叢集中的某個datanode無法啟動。

原因:可能是該節點的clusterId和master上的不一樣了,修改clusterId和master一樣的就行了。如下:

在core-site.xml中找到配置的hadoop.tmp.dir,往下找/dfs/name/current下有個VERSION檔案,開啟如下:

對比master上的clusterID,修改為mater上的ID就行了。

2.      格式化hdfs的時候出錯

出現了No Route to Host from  ***** to****等資訊,首先要保證各個節點配置額ssh免密碼登入,然後看看是否關閉了某個節點的防火牆,本人遇見過一次,就是某個節點的防火牆忘記了關閉。

3.      JAVA_HOME is not set and javacould not be found in PATH.

啟動在一臺機器上啟動其他機器上的zookeeper的時候,出現上面錯誤,但是單臺一個一個啟動的時候沒有問題,肯定是JAVA_HOME的原因,要在zookeeper的bin目錄下面的zkCli.sh檔案中加上JAVA_HOME=”**/**/”然後就能啟動了

4.      兩個namenode都是standby狀態,並且沒法自動切換。出現Operation category JOURNAL is not supported in state standby錯誤

首先要在hdfs-site.xml中配置zookeeper的地址,如下:

<property>

       <name>ha.zookeeper.quorum</name>

        <value>node1:2181,node2:2181,node3:2181</value>

    </property>

下面要確保ha自動切換可用。

  <property>

       <name>dfs.ha.automatic-failover.enabled</name>

        <value>true</value>

    </property>

然後最重要的是要格式化一下zkfc,不然zkfc啟動不了。

hdfs zkfc –formatZK

5.   name無法自動切換的問題

<property>

    <!--  -->

       <name>dfs.ha.fencing.methods</name>

       <value>shell(/bin/true)</value>

    </property>

網上好多教程是說這個值要配成sshfence,但是就是不能自動切換,原因參考:

https://blog.csdn.net/oneinmore/article/details/45250417

這個值改成shell(/bin/true)就可以了。


6. nodeManger啟動不起來,出現如下錯誤 Cannot support recovery with an ephemeral server port  

解決方案如下,在yarn-site.xml中新增屬性資訊

 <property>
      <name>yarn.nodemanager.address</name>
      <value>${yarn.nodemanager.hostname}:45454:45454</value>
   </property>