当我尝试远程运行map-reduce作业(字数计数示例)时遇到了一些问题.我搜索谷歌后仍然无法实现我的目标.我刚刚看到很少关于远程调用map-reduce作业的主题.
以下是问题:
>首先,我遇到许可问题:
SEVERE: PriviledgedActionException as:[user] cause:org.apache.hadoop.security.AccessControlException:
org.apache.hadoop.security.AccessControlException: Permission denied: user=[user], access=WRITE, inode="mapred":root:supergroup:rwxr-xr-x
这似乎是一个拒绝hdfs路径的权限.我通过设置dfs.permissions = true来关闭检查.是否有其他方法可以解决这个问题,但仍然保持检查.
>然后我遇到一个异常,说我无法访问map-reduce应用程序jar.
SEVERE: PriviledgedActionException as:[User] cause:java.io.FileNotFoundException: File /home/hduser/WordCount-1.0.jar does not exist.
我的代码是:
JobConf conf = new JobConf(WordCount.class);
conf.setJobName("wordcount");
conf.set("fs.default.name", "hdfs://10.97.1.91:54310");
conf.set("mapred.job.tracker", "10.97.1.91:54311");
conf.setJar("/home/hduser/WordCount-1.0.jar");
...
JobClient.runJob(conf);
看起来名称节点上的本地文件系统拒绝我访问jar文件.我怎样才能克服这个问题?我在stackoverflow中找到了a link.从链接中,不需要jar文件位置.但是name节点如何在不提供位置的情况下找到jar文件?
>我在互联网上发现的教程中看到很少有远程执行作业的例子.是不是建议这样做?