我尝试过以下查询。
hadoop jar /home/cloudera/workspace/para.jar word.Paras examples/wordcount /home/cloudera/Desktop/words/output
map reduce在其显示以下错误后开始。任何人都可以帮助解决这个问题。
15/11/04 10:33:57 INFO mapred.JobClient: Task Id : attempt_201511040935_0008_m_000002_0, Status : FAILED
org.apache.hadoop.security.AccessControlException: Permission denied: user=cloudera, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x
我是否需要更改任何配置文件或cloudera manager。
答案 0 :(得分:0)
该异常表明您正在尝试写入HDFS根目录" /"你(用户:cloudera)没有权限。
不知道你的具体罐子做了什么:
我猜最后一个参数(" / home / cloudera / Desktop / words / output")是您希望放置输出的位置。
我想这应该是在HDFS中,其中/ home不存在。
尝试将此更改为您可以编写的地方,可能" / user / cloudera / words / output"
答案 1 :(得分:0)
在开始使用hadoop集群之前,有一组默认目录,
do,它应该显示目录
$ hadoop fs -ls /
示例用户,如果您想在hdfs上运行所需的cloudera
/user/cloudera -- the user running the program /user/hadoop -- your hadoop file system user /user/mapred -- your mapred user /tmp -- temporary which needs to have permission hdfs chmod 1777
HTH。
答案 2 :(得分:0)
您传递的最后一个参数应该是HDFS的输出路径,而不是默认文件系统。
当您使用cloudera用户运行时,您可以指向/user/cloudera/words/output
。但首先,您需要检查您的HDFS中是否有cloudera,并且您具有写入权限,只需发出以下内容
hadoop fs -ls /user/
一旦你将命令更改为以下命令:
hadoop jar /home/cloudera/workspace/para.jar word.Paras examples/wordcount <path_where_you_have_write_permission_in_HDFS>