1. 程式人生 > 其它 >解決CDH 訪問許可權問題

解決CDH 訪問許可權問題

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"