Windows下执行MapReduce任务报错
1.错误如下:
org.apache.hadoop.security.AccessControlException: Permission denied:
2.原因:
因为Eclipse使用hadoop插件提交作业时,会默认以 DrWho 身份去将作业写入hdfs文件系统中,对应的也就是 HDFS 上的/user/xxx , 我的为/user/hadoop , 由于 DrWho 用户对hadoop目录并没有写入权限,所以导致异常的发生。可以使用的解决方法有:开放hadoop 目录的权限,命令如下:$ hadoop fs -chmod 777 /user/hadoop
3.解决办法:
hdfs-site.xml配置文件中添加
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
其中该项配置释义如下:
dfs.permissions.enabled
true
If "true", enable permission checking in HDFS. If "false", permission checking is turned off, but all other behavior is unchanged. Switching from one parameter value to the other does not change the mode, owner or group of files or directories.
译注:如果是true,在HDFS中将启动权限检查。如果是false,权限检查将被关闭,但是所有其它的行为不曾改变。从一个参数值转换到其它参数值不会改变模式、文件或者文件夹的所有者,所属组。