操作場景
部分角色實例以分布式并行工作的方式對外部業務提供服務,服務會單獨保存每個實例是否可以使用的信息,所以需要使用FusionInsight Manager為這些實例執行入服或退服的操作,變更實例的業務可用狀態方式。
不支持該此功能的實例,默認無法執行任務。
說明當前支持退服和入服操作的角色有:HDFS的DataNode、Yarn的NodeManager、HBase的RegionServer。
當DataNode數量少于或等于HDFS的副本數時,不能執行退服操作。若HDFS副本數為3時,則系統中少于4個DataNode,將無法執行退服,Manager在執行退服操作時會等待30分鐘后報錯并退出執行。
由于Mapreduce任務執行時,會生成一些副本數為10的文件,此時若DataNode實例數少于10時,將無法進行退服操作。
如果退服前,DataNode節點的機架數(機架數由各DataNode節點所配置的“機架”的名稱數量決定)大于1;而退服部分DataNode后,剩余的DataNode節點的機架數變為1,則此次退服將會失敗。所以需要在退服前評估退服操作對機架數的影響,以調整退服的DataNode節點。
在退服多個DataNode時,如果每個DataNode存儲的數據量較大,如果執行選擇多個DataNode同時退服,則很有可能會因超時而退服失敗。為了避免這種情況,建議每次退服僅退服1個DataNode,進行多次退服操作。
操作步驟
- DataNode節點退服前需要進行健康檢查,步驟如下:
- 使用客戶端用戶登錄客戶端安裝節點,并切換到客戶端安裝目錄。
- 如果是安全集群,需要使用hdfs用戶進行權限認證。
source bigdata_env #配置客戶端環境變量 ?
kinit hdfs #設置kinit認證 ?
Password for hdfs@HADOOP.COM: #輸入hdfs用戶登錄密碼
- 執行 hdfs fsck / -list-corruptfileblocks ,檢查返回結果。
? 如果結果是“...has 0 CORRUPT files”,執行步驟2。
? 如果結果不是“...has 0 CORRUPT files”,并返回損壞的文件名稱,按下一步執行。
- 執行 hdfs dfs -rm 損壞的文件名稱 ,刪除損壞的文件。
說明刪除文件為高危操作,在執行操作前請務必確認對應文件是否不再需要。
- 登錄FusionInsight Manager。
- 選擇“集群 > 待操作集群的名稱 > 服務”。
- 單擊服務視圖中指定的服務名稱,并選擇“實例”頁簽。
- 勾選指定的待退服角色實例。
- 在“更多”選擇“退服”或“入服”。
輸入當前登錄的用戶密碼確認身份,單擊“確定”。
勾選“我確定退服這些實例,并接受服務性能下降的結果。”,單擊“確定”,執行相應的操作。
說明實例退服操作未完成時在其他瀏覽器或窗口重啟集群中實例對應的服務,FusionInsight Manager將提示停止退服,實例的“操作狀態”顯示為“啟動”。實際上后臺已將該實例退服,請重新執行退服操作同步狀態。