如何在Normal特权中运行MR作业

时间:2014-10-28 04:29:55

标签: java hadoop hadoop-streaming hadoop2

我已安装Hadoop 2.3.0并能够成功执行MR作业。但是当我尝试以正常权限(没有管理员权限)执行MR作业时,意味着作业获取失败并出现以下异常。 我尝试了“WordCount.jar”样本。

14/10/28 09:16:12 INFO mapreduce.Job: Task Id : attempt_1414467725299_0002_r_000
000_1, Status : FAILED
Error: java.lang.NullPointerException
        at org.apache.hadoop.mapred.Task.getFsStatistics(Task.java:347)
        at org.apache.hadoop.mapred.ReduceTask$OldTrackingRecordWriter.<init>(Re
duceTask.java:478)
        at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:414
)
        at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:392)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInforma
tion.java:1548)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)

通过调试源代码我深入研究了YarnChild.java类中的问题

childUGI.doAs(new PrivilegedExceptionAction<Object>() {
                @Override
                public Object run() throws Exception {
                    // use job-specified working directory
                    FileSystem.get(job).setWorkingDirectory(job.getWorkingDirectory());
                    taskFinal.run(job, umbilical); // run the task
                    return null;
                }
            });

但如果我使用admin权限启动“NodeManager”意味着不会发生上述异常。当我以正常权限启动“NodeManager”时,我不知道为什么MR作业不起作用。

如果有人知道上述问题的原因和解决方案。请尽快给我帮忙。

0 个答案:

没有答案