Hadoop日常運維問題匯總
一:namenode出現missing blocks
日常巡檢CDH集群和HDP集群發現有些namenode下有很多missing blocks ,hadoop數據存儲單位為塊。一塊64M,這些Missing大多因為元數據丟失而毀壞,很難恢復。就行硬盤故障一樣,需要fsck並且delete。
CDH集群 :Cloudera manager的dashboard----HDFS----NameNode Web UI 如圖:
-----
HDP集群:Ambari Server 的dashboard---HDFS Links---NameNode UI 如圖
清理Missing blocks步驟:登錄到console中控機,su hdfs 切換至hadoop集群管理用戶
hdfs fsck /blocks-path/ 查看文件系統cluster,如:
hdfs fsck -fs hdfs://dc(n) /block-path/ 指定集群
hdfs fsck -fs hdfs://dc /block-path/ -delete 如果上步元數據已損壞,則直接清理。
例: hdfs fsck /app-logs/mapred/mbbi/logs/application_1525315338835_219860/10.11.12.161
hdfs fsck -fs hdfs://dc1 /app-logs/mapred/mbbi/logs/application_1525315338835_219860/10.11.12.161
hdfs fsck -fs hdfs://dc1 /app-logs/mapred/mbbi/logs/application_1525315338835_219860/10.11.12.161 -delete
二: Spark on Yarn 查看任務日誌及狀態
1、根據application ID查看某個job的日誌
yarn logs -applicationId application_1525315338835_7483
2、查看某個job的狀態
yarn application -status application_1525315338835_7483
3、kill掉某個job(完全停止該job的執行,如果直接在Web上kill實際還會繼續運行)
也可以通過 http://ip:8088/cluster/scheduler/ 查看,在此Web界面可通過applicationId查看任務狀態和日誌。
三:Hadoop集群用戶磁盤配額管理
1.hdfs是hadoop集群的管理用戶,所以首先應該登陸集群console並且su切換到hdfs用戶
2.磁盤配額分為磁盤目錄文件數配額和磁盤空間配額。以msns用戶、1000000文件數、100T的配額空間為例:
磁盤目錄文件數配額:hdfs dfsadmin -setQuota 1000000 /user/msns
磁盤空間配額:hdfs dfsadmin -setSpaceQuota 100t /user/msns
3.查看磁盤已有配額信息:
hadoop fs -count -q /user/msns
文件數限額 可用文件數 空間配額 可用空間 目錄數 文件數 總大小 文件/目錄名
清空文件數配額:hdfs dfsadmin -clrQuota /user/msns
清空磁盤空間配額:hdfs dfsadmin -clrSpaceQuota /user/msns
***5.註意這裏的空間配額是把副本容量也算入的,也就是所我們這裏的配額控制的是file_size x replications。即,如果我們要為msns用戶設置100T的實際可用空間,副本因子為3(一般為3),那麽就需要用上面的命令配置300T的空間配額。文件數配額也類似。
Hadoop日常運維問題匯總