解决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"
posted @ 2022-01-04 17:56  明月照江江  阅读(293)  评论(0编辑  收藏  举报