mkdir: Permission denied: user=root, access=WRITE

引言:咱們在作map reduce的時候遇到這種問題,用他指定的用戶去執行mapreduce就行。好比他要求hdfs,咱們就用hdfs用戶執行,代碼以下:安全

System.setProperty("HADOOP_USER_NAME", "hdfs");服務器

 

 

第一步:oop

解決方法:學習

  到服務器上修改hadoop的配置文件:conf/hdfs-core.xml, 找到 dfs.permissions 的配置項 , 將value值改成 falsespa

<property>
<name>dfs.permissions</name>
<value>false</value>
</property>xml

注意,實驗平臺能夠這麼設置,可是工做中,不能這樣,這樣不安全。hadoop

若是仍是不行,就是dfs沒有權限spark

第二步:io

產生問題緣由:登錄

      環境hadoop2,cdh5建立

      使用hadoop fs -mkdir /usr/xxx建立文件路徑時,出現權限問題

===========================================================

1.hadoop fs -ls /user

      檢查這個路徑下面的用戶權限學習

       drwxrwxrwt   - yarn hadoop          0 2014-09-03 11:58 /user/history

       drwxr-xr-x   - hdfs hadoop          0 2014-09-03 12:00 /user/spark

    其中:yarn--建立人,hadoop ---組,而root用戶屬於訪客類型的

2.使用hdfs這個用戶登陸

   sudo -uhdfs hadoop fs -mkdir /usr/

3.經過hdfs用戶更改所在用戶的權限

  sudo -uhdfs hadoop fs -chown 用戶:用戶組 /usr

好比過咱們是root用戶,能夠用命令 groups root ,查看root用戶的組,獲得組也是root如今更改用戶的權限

sudo -uhdfs hadoop fs -chown root:root /usr

再用命令 hadoop  fs -ls /  能夠看到 目錄 /usr,用戶名是root,用戶組是root

就搞定了。  

相關文章
相關標籤/搜索