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