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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章