2016-08-24 38 views
0

我已經在Cent OS 7上安裝了hadoop。用python編寫的守護進程服務試圖在HDFS中創建一個目錄,但獲得了下面的權限錯誤。如何讓root用戶將文件寫入HDFS

mkdir: Permission denied: user=root, access=WRITE, inode="/rep_data/store/data/":hadoop:supergroup:drwxr-xr-x 

看起來像我的服務正在根帳戶下運行。 所以我想知道如何給root用戶授予製作目錄和寫入文件的權限。

+0

請注意,是#2只編程相關的問題。請查看[幫助/在線主題],瞭解可在此處詢問哪些主題。這個問題可能適用於其他SE網站,如[unix.se]或[超級用戶](http://superuser.com)。首先檢查他們的幫助,看看問題是否屬於那裏,如果是這樣,你可以點擊「標誌」鏈接並選擇「需要管理員注意」來請求遷移。 – kaylum

+0

我認爲它與編程有關,我在這裏提到的服務是由我在python中編寫的。所以python代碼試圖在hadoop中創建目錄。 – Saran

+0

這個問題從編程活動中產生並不重要。問題的關鍵在於,問題本身與編程沒有直接關係(某人沒有進行編程可能會有完全相同的問題)。您正在詢問有關設置系統管理員問題而非編程問題的權限。如果你問如何設置代碼本身的權限,那麼這會使它成爲一個編程問題。但問題並非如此,聽起來像你只是想正確設置你的系統。 – kaylum

回答

0

如果您嘗試在HDFS根目錄下創建目錄(即/),則可能會遇到此類問題。你可以在你的家像如下

sudo hdfs hdfs dfs -mkdir /directory/name

要在HDFS家創建目錄創建目錄,沒有任何問題

要在根目錄下,執行命令執行以下命令

hdfs dfs -mkdir /user/user_home/directory/name

+0

該目錄已存在。權限錯誤 –

+0

通過命令行,我可以在hadoop中創建目錄。但是當python程序嘗試創建目錄時,我收到了錯誤。 – Saran

+0

用明確的詳細信息更新您的問題 – BruceWayne

0

這可能是一個問題,因爲你不是super user

解決方法是在hdfs中啓用訪問控制列表併爲用戶授予權限。 要啓用對ACL的支持,請在NameNode配置中將dfs.namenode.acls.enabled設置爲true。

欲瞭解更多信息檢查:link

+0

暫時我使用解決問題的chown將文件夾/ rep_data/store/data /的所有者從hadoop更改爲root。 – Saran

+0

您可以將您的用戶(hadoop)添加到sudoer組,並在下次使用'sudo '。 –