namenode ha切換優化

一、背景

目前namenode使用了ha的部署模式,但系統會經常出現ha的自動切換(namenode節點其實正常)。經過調研發現可能的原因如下:

  1. HealthMonitor check本地namenode的rpc端口時超時,導致HealthMonitor認爲namenode掛掉。

  2. zk上的session timeout,導致丟掉當前持有的active鎖(temp節點),引起自動切換。

二、優化

下面的優化將針對1)和2)調整相應的超時參數,看是否起效。修改core-site.xml

    <!-- HealthMonitor check namenode 的超時設置,默認50000ms,改爲5mins -->
    <property>
        <name>ha.health-monitor.rpc-timeout.ms</name>
        <value>300000</value>
    </property>
   <!-- zk failover的session 超時設置,默認5000ms,改爲3mins -->
    <property>
        <name>ha.zookeeper.session-timeout.ms</name>
        <value>180000</value>
    </property>

三、操作影響

無,不需要重啓hadoop,不會引起namenode切換

四、操作步驟

下面操作假設master1(active),master2(standby),只有按照該順序操作,才能實現namenode不切換

1)登陸master2(standby),註釋掉crontab中的restart-zkfc.sh任務, 執行 

sbin/hadoop-daemon.sh stop zkfc

2)登陸master1(active),註釋掉crotab中的restart-zkfc.sh任務,執行

sbin/hadoop-daemon.sh stop zkfc

3)備份master1和master2的core-site.xml文件,將上述配置項加到master1和master2的core-site.xml配置文件中

4)登陸master1(active),執行

sbin/hadoop-daemon.sh start zkfc


5)登陸master2(standby),執行

sbin/hadoop-daemon.sh start zkfc

6)check hadoop集羣狀態
7)重要!!! 登錄master1和master2,恢復crontab中的restart-zkfc.sh任務
8)完成

注意事項

1)需要先註釋掉機器上的crontab任務restart-zkfc.sh,否則該程序會自動拉起zkfc進程。導致namenode active產生切換
2)任務完成後要恢復crontab中註釋掉的restart-zkfc.sh任務



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章