引言:咱们在作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
就搞定了。