解決CDH 訪問許可權問題
阿新 • • 發佈:2022-01-04
CDH 6.2 安裝好以後,直接使用root 或者 其他賬號執行spark-shell
會報許可權錯誤
22/01/04 17:46:28 ERROR spark.SparkContext: Error initializing SparkContext. org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:400) ...
因為CDH版的HDFS系統中,hdfs
使用者才是超管,他所在的組在HDFS裡是supergroup
而非linux下的 root 或者 其他使用者。
解決辦法:
## 建立hadoop使用者,(由於已存在hadoop組,就直接-g 加入) useradd -g hadoop hadoop ## 新增sudo許可權,已經幹了的話,這裡就忽略 visudo ## Allow root to run any commands anywhere root ALL=(ALL) ALL hadoop ALL=(ALL) ALL ## 自主新增的一行 修改完畢 :wq! ## Linux 下建立超級使用者組 groupadd supergroup ## 把hadoop使用者加入supergroup組中 usermod -a -G supergroup hadoop ## 同步系統許可權資訊到HDFS,會自動同步其他節點許可權 su - hdfs -s /bin/bash -c "hdfs dfsadmin -refreshUserToGroupsMappings"