錯誤堆疊:
Caused by: org.fusesource.leveldbjni.internal.NativeDB$DBException:
IO error: /var/lib/hadoop-yarn/yarn-nm-recovery/yarn-nm-state/LOCK: Permission denied
YARN NodeManager 啟動時需對 `yarn.nodemanager.recovery.dir` (預設 `/var/lib/hadoop-yarn/yarn-nm-recovery`) 有**讀寫執行**權限。若目錄由 `root` 建立,而 NM 以 `yarn` 用戶啟動 → `Permission denied`。
# 1. 確認目錄擁有者
ls -ld /var/lib/hadoop-yarn/yarn-nm-recovery
# 輸出應為 yarn:hadoop 或 yarn:yarn
# 2. 遞歸授權給 yarn 用戶
chown -R yarn:hadoop /var/lib/hadoop-yarn/yarn-nm-recovery
chmod -R 755 /var/lib/hadoop-yarn/yarn-nm-recovery
# 3. 若使用 Cloudera Manager,同步 CM 管理的角色目錄
# CM → YARN → 設定 → NodeManager → 本地目錄/恢復目錄 → 確認路徑與擁有者一致
# 4. 重啟 NodeManager
# CM → YARN → NodeManager → 重新啟動
sudo -u yarn test -w /var/lib/hadoop-yarn/yarn-nm-recovery/yarn-nm-state && echo "OK"
# 輸出 OK 表示權限正確
核心口訣:**大數據元件啟動報 `Permission denied`,90% 是目錄擁有者與啟動用戶不匹配,`chown -R` 到正確用戶即愈。**