2015-06-25 154 views
0

我最近在我的機器上安裝了Hadoop。我有權限問題。我以用戶rahul的身份登錄並試圖在HDFS中創建一個目錄(hdfs dfs -mkdir /rahul_workspace)。但它給了我一個錯誤Permission denied: user=Rahul, access=WRITE, inode="/user":hdfs:hdfs:drwxr-xr-x。快速谷歌搜索此錯誤會導致許多響應提示通過將hdfs-site.xml中的dfs.permissions屬性設置爲false來禁用權限檢查的解決方法。 現在我可以在HDFS中創建目錄。如果上述屬性設置爲false,我是否可以訪問Hive,Pig,sqoop等所有其他hadoop服務?hadoop權限問題(hdfs-site.xml dfs.permissions.enabled)

回答

1

dfs.permissions是可用於啓用/禁用HDFS ACL(簡單權限)的屬性。將dfs.permission設置爲false時,任何用戶都可以在HDFS中的任何位置創建/刪除文件/目錄。

有了這個屬性設置爲false,您可以訪問所有其他的Hadoop服務,如蜂巢,豬等

1

HDFS對待誰啓動名稱節點的過程爲「超級用戶」的用戶。該用戶通常是hdfs用戶。您嘗試寫入的/user目錄歸hdfs用戶和hdfs組擁有,對hdfs組和其他用戶具有讀取和執行權限。

禁用權限似乎有點極端。這裏有幾個選項,第一個是將用戶目錄創建爲hdfs用戶。

sudo -u hdfs hdfs fs -mkdir /rahul_workspace 
sudo -u hdfs hdfs fs -chown Rahul /rahul_workspace 

這將創建您的目錄並將所有權更改爲您。另一種選擇是在您已擁有寫入權限的區域創建您的目錄。通常/ tmp是開放的。

hdfs fs -mkdir /tmp/rahul_workspace 
1

在Cloudera的: 我做什麼,創造了默認權限一個用戶的色調即USER1

然後,從Linux shell中,首先做訪問HDFS的用戶權限: export HADOOP_USER_NAME=hdfs

那麼對於您的linux用戶名稱如「user1」:

嘗試: hdfs dfs -chown user1:user1 /

現在,如果你得到了適當的權限:

嘗試在 '/' 創建目錄: hdfs dfs -mkdir /testuser1

0

我們已經使用

Hadoop的FS -setfacl -m -R用戶:XYZ:RWX/data/dev/dl/fvc/df

解決頂級目錄(/ data)上的這個問題。