hadoop,hbase,hive,spark遇到无权限问题Permission denied: user=root, access=WRITE解决

在hadoop,hbase,hive,spark执行某些命令时,可能遇到以下问题

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

这是因为root用户没有相应权限导致的
解决方法有以下几种

1.第一种解决方案

在hdfs上/user目录下创建root目录,需要在HDFS上有一个用户主目录

作为HDFS用户登录并为root创建一个主目录。

# su hdfs  
$ hdfs dfs -mkdir /user/root  
$ hdfs dfs -chown root:root /user/root  

如果已经有了/user/root ,查看下文件的权限

# hdfs dfs -ls /user 

改为root所有:

$ hdfs dfs -chown root:root /user/root  

2.第二种解决方案

第一步:su hdfs,进入hdfs用户。

# su hdfs

第二步:hadoop fs -ls /,看看user的权限。

$ hadoop fs -ls /
Found 3 items
drwxr-xr-x   - hbase hbase               0 2019-11-21 12:04 /hbase
drwxrwxrwt   - hdfs  supergroup          0 2019-11-15 19:38 /tmp
drwxr-xr-x   - hdfs  supergroup          0 2019-11-21 19:25 /user

第三步:修改权限

$ hadoop fs -chmod 777 /user

$ hadoop fs -ls /
Found 3 items
drwxr-xr-x   - hbase hbase               0 2019-11-21 12:04 /hbase
drwxrwxrwt   - hdfs  supergroup          0 2019-11-15 19:38 /tmp
drwxrwxrwx   - hdfs  supergroup          0 2019-11-21 19:25 /user

3.第三种解决方案

在执行命令前执行以下命令

export HADOOP_USER_NAME=hdfs

4.第四种解决方案

使用hdfs用户执行命令

sudo -u hdfs hadoop fs -mkdir /xxx
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章