1. 程式人生 > >HDFS結構與升級

HDFS結構與升級

一、hdfs的namenode結構

  1. Version是hdfs的版本資訊
  2. edits開頭的是操作日誌檔案
  3. fsimage開頭的是資料映象檔案
  4. .lock結尾的是鎖檔案,防止兩個namenode共同操作資料檔案

二、主namenode和輔助namenode的工作流程

三、hdfs的datanode結構

  1. blk開頭的是一個hdfs資料塊的原始位元組數
  2. blk開頭,.meta結尾的是該塊的元資料資訊
  3. 注意,當資料塊儲存一定數量時,會在該目錄建立一個新的資料夾再次存放資料塊,可以有效管理各個目錄的資料檔案

四、安全模式

相關的操作命令
Hadoop提供指令碼用於對安全模式進行操作,主要命令為:
hdfs dfsadmin -safemode

command的可用取值如下:
command 功能 備註
get 檢視當前狀態
enter 進入安全模式
leave 強制離開安全模式
wait 一直等待直到安全模式結束

五、資料塊檢查

hdfs fsck <檔案或者目錄>

六、委任新datanode節點

  1. 將新節點的網路地址新增到include檔案中(dfs.hosts和yarn.resourcemanager.nodes.include-path)
  2. 更新hdfs節點資訊
  • hdfs dfsadmin -refreshNodes
  1. 更新yarn節點資訊
  • yarn rmadmin -refreshNodes
  1. 更新slaves檔案和hosts檔案
  2. 啟動新的datanode和節點管理器
  3. 執行./start-balancer.sh,使各節點資料均衡

七、解除舊節點

  1. 將需要解除的節點新增到exclude檔案中(dfs.hosts.exclude和yarn.resourcemanager.nodes.exclude-path)
  2. 更新hdfs節點資訊
  • hdfs dfsadmin -refreshNodes
  1. 更新yarn節點資訊
  • yarn rmadmin -refreshNodes
  1. 到網頁介面檢視datanode是否是Decommissioned狀態(已解除)
  2. 從include檔案中(dfs.hosts和yarn.resourcemanager.nodes.include-path)刪除
  3. 從slaves和hosts檔案中刪除節點

八、升級hdfs版本

  1. 升級之前,確保上一版本已經升級完成
  2. 備份namenode元資料資訊並手動備份比較重要的資料檔案
  • ./hdfs dfsadmin -fetchImage fsimage
  1. 關閉yarn和hdfs守護程序
  • ./stop-dfs.sh 和 ./stop-yarn.sh
  1. 在新版本的命令中使用-upgrade啟動hdfs
    • $NEW_HADOOP/start-dfs.sh -upgrade 升級
  • $NEW_HADOOP/hdfs dfsadmin -upgradeProgress status 檢視升級狀態
  1. 回滾/定妥升級
  • (1)如果無法使用,則回滾到上一版本
    • $NEW_HADOOP/stop-dfs.sh 停止新的守護程序
  •   $OLD_HADOOP/start-dfs.sh	 -rollback	回滾
    
  • (2)如果滿意升級並可能往下一步升級,則選擇定妥升級
  •   $NEW_HADOOP/hdfs dfsadmin -finalizeUpgrade	定妥升級