복붙노트

[HADOOP] 일반 특권의 MR 작업을 실행하는 방법

HADOOP

일반 특권의 MR 작업을 실행하는 방법

나는 하둡 2.3.0를 설치하고 성공적으로 MR 작업을 실행할 수있다. 하지만 (관리자 권한이없는) 정상 특권에 MR 작업을 실행하려고 할 때하는 작업 get 및 예외를 다음과 같이 실패하는 것을 의미한다. 나는 "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;
                }
            });

내가 관리자 권한으로 "NodeManager"를 시작하는 경우 그러나 위의 예외가 발생하지 않는 것을 의미한다. 나는 정상적인 권한으로 "NodeManager"를 시작할 때 MR 작업이 작동하지 않는 이유를 알고하지 않습니다.

사람이 위의 문제의 원인과 해결 방법을 알고 있다면. 가능한 한 빨리 나에게 부탁을하시기 바랍니다.

해결법

    from https://stackoverflow.com/questions/26600916/how-to-run-mr-job-in-normal-privilege by cc-by-sa and MIT license