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節點。

提示:代碼塊部分可以左右滑動查看噢

為天地立心,為生民立命,為往聖繼絕學,為萬世開太平。 溫馨提示:如果使用電腦查看圖片不清晰,可以使用手機打開文章單擊文中的圖片放大查看高清原圖。