2014-09-11 2 views
1

Hadoop MapReduce를 작동 시키려고하지만 액세스 문제가 계속 발생하려고합니다. 구성인지 여부에 관계없이 문제가 무엇인지 확실하지 않습니다.myuser로 작업을 실행하려고하면 권한이 거부되었지만 루트에 충분한 권한이 없다고 표시됩니다.

나는 다음과 같은 오류 받고 있어요

hadoop jar /usr/share/hadoop/hadoop-examples-1.2.1.jar wordcount /user/myuser/input.txt /user/myuser/output.txt

, 예를 들어,이 단어 수 실행 해요 때 :

14/09/10 20:15:51 INFO input.FileInputFormat: Total input paths to process : 1 
14/09/10 20:15:51 INFO mapred.JobClient: Running job: job_201409101946_0010 
14/09/10 20:15:52 INFO mapred.JobClient: map 0% reduce 0% 
14/09/10 20:15:52 INFO mapred.JobClient: Task Id : attempt_201409101946_0010_m_000002_0,   Status : FAILED 
Error initializing attempt_201409101946_0010_m_000002_0: 
org.apache.hadoop.security.AccessControlException:   
org.apache.hadoop.security.AccessControlException: Permission denied: user=root, 
access=EXECUTE, inode="job_201409101946_0010":hadoop:supergroup:rwx------ 
at sun.reflect.GeneratedConstructorAccessor7.newInstance(Unknown Source) 
... 

물론, 사용자가 = 루트가 디렉토리 사용자 하둡 소유에 액세스 할 수 없습니다에게 . 하지만 문제는 내가 myuser로 작업을 실행하고 왜 루트가 전혀 여기에 관련되어 있는지 모르겠습니다. 이 문제의 원인을 아십니까?

+0

당신이 특정 항아리가 소유하고 –

+0

당신의 JAR 위치의 사용자 그룹 권한을 확인할 수 있습니다 루트,하지만 다른 항아리와 똑같은 문제가 있었는데, 이것은 myuser가 소유하고 있습니다. –

답변

0

우선 /user/myuser/은 로컬 경로가 아닌 HDFS의 경로 여야합니다. 그것을 실행하지 않는 경우, 그것은 존재해야하므로 : groupOfMyuser 그룹이 myuser가 속한이다

hadoop dfs -mkdir /user/myuser/ 다음
hadoop dfs -chown myuser:groopOfMyuser /user/myuser/을.

는 실행 존재 여부를 확인하려면 다음 hadoop dfs -ls /user/

을 그리고, HDFS의 입력 디렉토리에 파일을 업로드하기 위해 사용하는 명령

hadoop dfs -copyFromLocal /local/path/input.txt /user/myuser/

주를 그 입력과 출력 경로해야 파일이 아닌 디렉토리 (HDFS 상)이어야합니다. 그래서, 당신을 programm을 실행할 수있는 올바른 명령은 다음과 같습니다

hadoop jar /usr/share/hadoop/hadoop-examples-1.2.1.jar wordcount /user/myuser /user/myuser/output

가 마지막으로 하둡 DIRS ($HADOOP_HOME가) myuser 또는 hadoop 또는 무엇이든 소유하는 경우 확인을 소유하는 것과 항아리를 실행, chown으로 소유권을 변경하십시오.

는 (물론, 당신은 이전 API를 사용하는 가정,하지만 당신은 쉽게 새로운 API의 해당하는 명령을 찾을 수 있습니다.)

+0

/user/myuser /는 HDFS의 경로이며 myuser가 소유합니다. 이 부분은 괜찮을 것입니다. 코드는 실제로 어쨌든 어떤 독서에 도달하지 못했습니다. 허락 된 권한은 hadoop이 임시 작업 파일 (대부분 스테이지 파일 디렉토리)에 액세스/생성하려고 할 때입니다. 어떤 이유로 루트 권한으로 작업하고 있습니다. 따라서 귀하의 답변 중 두 번째 부분이 실제로 문제를 해결할 수 있다고 생각합니다. 시도해 보겠습니다. –

관련 문제