1. 程式人生 > 其它 >CDH HDP ambari CM問題合集,持續更新

CDH HDP ambari CM問題合集,持續更新

問題現象:namenode 資料塊丟失

NameNode Blocks Health Total Blocks:[5247], Missing Blocks:[4677] 問題原因: datanode 或namenode資料 丟失 冗餘副本資料不一致造成 解決辦法: 刪除丟失模組元資料,6小時後資料會自動同步 相關指令:
檢視丟失資料塊:hdfs fsck /
簡單刪除丟失塊命令列
for (( i=0; i<100; i++ ))
do
    hdfs fsck / | grep 'MISSING' | head -n 1 | cut -d : -f 1 | xargs hdfs fsck -delete
done

問題現象:如下圖

二 問題現象:namenode datanode journode資料不對齊

三 問題現象:hdfs 訪問許可權不夠

Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x

Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=root, access=EXECUTE, inode="/tmp/hive/root":hdfs:supergroup:drwx------

為題原因:訪問許可權不足,導致寫入失敗

解決方案:授予使用者目錄許可權

執行指令:

1 給特定目錄授予使用者權力,該場景為該目錄

sudo -u hdfs hadoop fs -chown -R deploy /user/deploy/

其中,deploy為待新增許可權使用者

2 新增使用者到supergroup

具體原理:

Hadoop本身的使用者和組的關係,都是同步Linux系統中的,但是HDFS和Linux的超級使用者組又有一點差別,HDFS中的超級使用者組是supergroup,但是Linux中預設是沒有supergoup這個組,這個時候只需要在Linux中增加supergroup這個組,然後將要在HDFS中加入到supergroup中的使用者加到這個組中,再同步HDFS使用者和組即可。


具體指令:

1、在Linux執行如下命令增加supergroup
groupadd supergroup
2、如將使用者yarn增加到supergroup中,再執行:
usermod -a -G supergroup yarn
3、同步系統的許可權資訊到HDFS:
su - hdfs -s /bin/bash -c "hdfs dfsadmin -refreshUserToGroupsMappings"