Hadoop2.5.2 HA主備切換失敗的解決辦法

在學習過程中,配置完HA進行驗證:手動kill主namennode進程,但是備用namenode始終是standby狀態,一直找不到原因,很是鬱悶,還以爲是hadoop版本跟老師將的不一樣,進而需要不同的配置導致的。

今天,終於找到問題原因了。記錄如下,希望對遇到此問題的朋友有所幫助。


解決辦法:
在備用namenode上查看 hadoop-grid-zkfc-server102.log日誌,發現異常如下
2016-10-16 00:09:32,465 WARN org.apache.hadoop.ha.SshFenceByTcpPort: PATH=$PATH:/sbin:/usr/sbin fuser -v -k -n tcp 53310 via ssh: bash: fuser: command not found
2016-10-16 00:09:32,465 WARN org.apache.hadoop.ha.NodeFencer: Fencing method org.apache.hadoop.ha.SshFenceByTcpPort(null) was unsuccessful.
2016-10-16 00:09:32,465 WARN org.apache.hadoop.ha.ActiveStandbyElector: Exception handling the winning of election
2016-10-16 00:09:34,552 WARN org.apache.hadoop.ha.FailoverController: Unable to gracefully make NameNode at server101.hadoop.com/192.168.1.101:53310 standby (unable to connect)
2016-10-16 00:09:34,592 WARN org.apache.hadoop.ha.SshFenceByTcpPort.jsch: Permanently added 'server101.hadoop.com' (RSA) to the list of known hosts.


由上面的警告可知:fuser: command not found,在做主備切換時執行fuser命令失敗了。

查看hdfs-site.xml配置文件,
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>

hdfs-site.xml通過參數dfs.ha.fencing.methods來實現,在出現故障時通過哪種方式登錄到另一個namenode上進行接管工作。


====》》》dfs.ha.fencing.methods參數解釋

系統在任何時候只有一個namenode節點處於active狀態。
在主備切換的時候,standby namenode會變成active狀態,原來的active namenode就不能再處於active狀態了,
否則兩個namenode同時處於active狀態會有問題。
所以在failover的時候要設置防止2個namenode都處於active狀態的方法,可以是Java類或者腳本。

fencing的方法目前有兩種,sshfence和shell

sshfence方法是指通過ssh登陸到active namenode節點殺掉namenode進程,所以你需要設置ssh無密碼登陸,還要保證有殺掉namenode進程的權限。


以下是具體解決步驟:
# 查找fuser
[root@server101 ~]# yum provides "*/fuser"
Loaded plugins: fastestmirror
Determining fastest mirrors
* epel: mirrors.tuna.tsinghua.edu.cn
psmisc-22.20-9.el7.x86_64 : Utilities for managing processes on your system
Repo        : base
Matched from:
Filename    : /usr/sbin/fuser

# 在namenode主、備節點上安裝fuser(datanode節點不用安裝)
[root@server101 ~]# yum -y install psmisc
[root@server102 ~]#  yum -y install psmisc

安裝完成後,再次測試,namenode自動切換成功!!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章