修復(fù)單臺JournalNode異常
當(dāng)您的集群中只有一個節(jié)點上的JournalNode服務(wù)出現(xiàn)異常時,可以嘗試從其他節(jié)點恢復(fù)。本文介紹如何從其他節(jié)點恢復(fù)異常的JournalNode服務(wù)。
操作步驟
找到健康狀態(tài)的JournalNode。
您可以通過HDFS WebUI查看JournalNode的狀態(tài),詳細信息請參見HDFS Web UI介紹。
登錄到健康的JournalNode所在節(jié)點(優(yōu)先選擇header或master節(jié)點),打包需要恢復(fù)的文件。
登錄節(jié)點的具體操作,請參見登錄集群。
切換到hdfs用戶。
su hdfs
進入文件所在目錄。
cd /mnt/disk1/hdfs/journal/emr-cluster/
打包文件。
tar --exclude='edits*' -zcvf /tmp/jn-current.tar.gz current
預(yù)期結(jié)果如下:
current/ current/last-writer-epoch current/VERSION current/last-promised-epoch current/paxos/ current/committed-txid
同步打包后的文件(jn-current.tar.gz)到異常JournalNode服務(wù)所在節(jié)點。
切換到emr-user用戶。
su emr-user
如果5.7.0或3.41.0之前版本的EMR提示emr-user不存在,可切換至hadoop用戶。
su hadoop
同步打包后的文件。
scp /tmp/jn-current.tar.gz $unhealthy-journal-node:/tmp/
$unhealthy-journal-node需要替換為異常JournalNode節(jié)點的hostname。
在EMR控制臺停止HDFS異常節(jié)點上的JournalNode服務(wù),并登錄到異常JournalNode所在的節(jié)點,嘗試恢復(fù)JournalNode。
切換到hdfs用戶。
su hdfs
備份舊的current目錄。
cd /mnt/disk1/hdfs/journal/emr-cluster/ mv current current.bak
恢復(fù)JournalNode。
tar -xvf /tmp/jn-current.tar.gz
在EMR控制臺啟動HDFS異常節(jié)點上的JournalNode服務(wù),并在異常節(jié)點中查看JournalNode日志。
關(guān)于日志的詳細信息,請參見HDFS服務(wù)日志。
觀察HDFS Web UI,如果JournalNode可正常寫入,則恢復(fù)成功,此時可清理掉已備份的current目錄文件(current.bak)。
您可以通過HDFS WebUI查看JournalNode是否可以正常寫入,詳細信息請參見HDFS Web UI介紹。