HDFS結構與升級
阿新 • • 發佈:2018-11-14
一、hdfs的namenode結構
- Version是hdfs的版本資訊
- edits開頭的是操作日誌檔案
- fsimage開頭的是資料映象檔案
- .lock結尾的是鎖檔案,防止兩個namenode共同操作資料檔案
二、主namenode和輔助namenode的工作流程
三、hdfs的datanode結構
- blk開頭的是一個hdfs資料塊的原始位元組數
- blk開頭,.meta結尾的是該塊的元資料資訊
- 注意,當資料塊儲存一定數量時,會在該目錄建立一個新的資料夾再次存放資料塊,可以有效管理各個目錄的資料檔案
四、安全模式
相關的操作命令
Hadoop提供指令碼用於對安全模式進行操作,主要命令為:
hdfs dfsadmin -safemode
command的可用取值如下:
command 功能 備註
get 檢視當前狀態
enter 進入安全模式
leave 強制離開安全模式
wait 一直等待直到安全模式結束
五、資料塊檢查
hdfs fsck <檔案或者目錄>
六、委任新datanode節點
- 將新節點的網路地址新增到include檔案中(dfs.hosts和yarn.resourcemanager.nodes.include-path)
- 更新hdfs節點資訊
- hdfs dfsadmin -refreshNodes
- 更新yarn節點資訊
- yarn rmadmin -refreshNodes
- 更新slaves檔案和hosts檔案
- 啟動新的datanode和節點管理器
- 執行./start-balancer.sh,使各節點資料均衡
七、解除舊節點
- 將需要解除的節點新增到exclude檔案中(dfs.hosts.exclude和yarn.resourcemanager.nodes.exclude-path)
- 更新hdfs節點資訊
- hdfs dfsadmin -refreshNodes
- 更新yarn節點資訊
- yarn rmadmin -refreshNodes
- 到網頁介面檢視datanode是否是Decommissioned狀態(已解除)
- 從include檔案中(dfs.hosts和yarn.resourcemanager.nodes.include-path)刪除
- 從slaves和hosts檔案中刪除節點
八、升級hdfs版本
- 升級之前,確保上一版本已經升級完成
- 備份namenode元資料資訊並手動備份比較重要的資料檔案
- ./hdfs dfsadmin -fetchImage fsimage
- 關閉yarn和hdfs守護程序
- ./stop-dfs.sh 和 ./stop-yarn.sh
- 在新版本的命令中使用-upgrade啟動hdfs
- $NEW_HADOOP/start-dfs.sh -upgrade 升級
- $NEW_HADOOP/hdfs dfsadmin -upgradeProgress status 檢視升級狀態
- 回滾/定妥升級
- (1)如果無法使用,則回滾到上一版本
- $NEW_HADOOP/stop-dfs.sh 停止新的守護程序
-
$OLD_HADOOP/start-dfs.sh -rollback 回滾
- (2)如果滿意升級並可能往下一步升級,則選擇定妥升級
-
$NEW_HADOOP/hdfs dfsadmin -finalizeUpgrade 定妥升級