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

就搞定了。  

相关文章
相关标签/搜索