0531-6.1-如何手動遷移JournalNode
- 2019 年 11 月 28 日
- 筆記
溫馨提示:如果使用電腦查看圖片不清晰,可以使用手機打開文章單擊文中的圖片放大查看高清原圖。
Fayson的github: https://github.com/fayson/cdhproject
提示:代碼塊部分可以左右滑動查看噢
1
文檔編寫目的
Fayson在上一篇文章《0530-6.1-如何只是遷移NameNode或JournalNode》,主要介紹了通過Cloudera Manager來界面化嚮導式遷移JournalNode,本文Fayson主要會實操演示如何手動遷移JournalNode角色。
- 測試環境
1.CDH6.1
2.Redhat7.4
3.HDFS已經啟用HA
2
環境準備
1.啟用HDFS HA成功後再次查看HDFS服務的「實例」頁面,可以看到一共4個節點在一個HDFS HA的集群中的不同角色劃分。

2.接下來本文,會開始演示將ip-172-31-6-83上的JournalNode角色遷移到ip-172-31-9-113節點。首先我們停止ip-172-31-6-83節點上的JournalNode服務,並且刪除,模擬故障。



3.這是CM提示警告,JournalNode必須為奇數個,最少三個。

3
手動遷移JournalNode
1.首先我們停止HDFS服務。

停止成功

2.因為我們要將ip-172-31-6-83上的JournalNode角色遷移到ip-172-31-9-113節點,我們從另外2個正常的JN節點中的一台ip-172-31-4-105拷貝JN的edits數據目錄到ip-172-31-9-113節點。
[root@ip-172-31-4-105 dfs]# cd /dfs [root@ip-172-31-4-105 dfs]# tar czvf jn.tar.gz jn/ [root@ip-172-31-4-105 dfs]# scp jn.tar.gz root@ip-172-31-9-113:/dfs


注意:/dfs目錄是Fayson的集群所配置的JN的edits的目錄。
我們登錄到ip-172-31-9-113上進行檢查傳過來的JN數據。
[root@ip-172-31-9-113 dfs]# cd /dfs [root@ip-172-31-9-113 dfs]# ll total 192 drwx------ 3 hdfs hadoop 21 Feb 1 14:09 dn -rw-r--r-- 1 root root 194699 Feb 1 14:14 jn.tar.gz [root@ip-172-31-9-113 dfs]# tar xvzf jn.tar.gz

注意:解壓後的jn目錄的用戶屬組與權限必須正確,可以與之前的正常JN節點ip-172-31-4-105中相同的目錄進行比較。
3.回到HDFS服務的「實例」頁面,添加JN角色給新的節點ip-172-31-4-105

點擊「添加角色實例」

在JournalNode欄目中選擇ip-172-31-4-105

點擊「繼續」

CM的警告報錯也消失了。
4.重啟HDFS服務


啟動成功

5.進入HDFS服務頁面,點擊「操作」->「滾動編輯」,該步驟主要是為了強制同步3個JournalNode的狀態,畢竟ip-172-31-4-105是新加入的。


同步成功

6.HDFS功能簡單驗證

4
總結
1.如果你想將JournalNode角色從一個節點遷移到另外一個節點,可以使用Cloudera Manager界面嚮導式執行,也可以使用本文手動遷移的方式,不過優先建議採用CM界面化的標準方式。
2.當然本文也適用於如果你一個JournalNode所在節點損壞的情況,如果你需要恢復其中一個JournalNode節點,也可以採用本文的方法。
3.該功能在執行過程中會需要重啟整個HDFS服務,請提前做好停機規劃。
4.注意在從一個健康的節點拷貝JN的edits數據目錄到新的節點時,一定要注意目錄的用戶屬組和權限正確。
5.在遷移完畢,HDFS服務正式起來後,需要執行JournalNode的「滾動編輯」操作,以強制同步3個JournalNode節點的狀態,畢竟有新加入的JN節點。
提示:代碼塊部分可以左右滑動查看噢
為天地立心,為生民立命,為往聖繼絕學,為萬世開太平。 溫馨提示:如果使用電腦查看圖片不清晰,可以使用手機打開文章單擊文中的圖片放大查看高清原圖。