복붙노트

[HADOOP] HDFS 쓰기 결과 "CreateSymbolicLink 오류 (1314) : 클라이언트가 필요한 권한을 가지고 있지 않습니다."

HADOOP

HDFS 쓰기 결과 "CreateSymbolicLink 오류 (1314) : 클라이언트가 필요한 권한을 가지고 있지 않습니다."

Apache Hadoop에서 샘플 맵 감소 프로그램을 실행하려고했습니다. map reduce 작업이 실행될 때 아래 예외가 발생했습니다. hdfs dfs -chmod 777 /을 시도했지만 문제가 해결되지 않았습니다.

15/03/10 13:13:10 WARN mapreduce.JobSubmitter: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with
ToolRunner to remedy this.
15/03/10 13:13:10 WARN mapreduce.JobSubmitter: No job jar file set.  User classes may not be found. See Job or Job#setJar(String).
15/03/10 13:13:10 INFO input.FileInputFormat: Total input paths to process : 2
15/03/10 13:13:11 INFO mapreduce.JobSubmitter: number of splits:2
15/03/10 13:13:11 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1425973278169_0001
15/03/10 13:13:12 INFO mapred.YARNRunner: Job jar is not present. Not adding any jar to the list of resources.
15/03/10 13:13:12 INFO impl.YarnClientImpl: Submitted application application_1425973278169_0001
15/03/10 13:13:12 INFO mapreduce.Job: The url to track the job: http://B2ML10803:8088/proxy/application_1425973278169_0001/
15/03/10 13:13:12 INFO mapreduce.Job: Running job: job_1425973278169_0001
15/03/10 13:13:18 INFO mapreduce.Job: Job job_1425973278169_0001 running in uber mode : false
15/03/10 13:13:18 INFO mapreduce.Job:  map 0% reduce 0%
15/03/10 13:13:18 INFO mapreduce.Job: Job job_1425973278169_0001 failed with state FAILED due to: Application application_1425973278169_0001 failed 2 times due
to AM Container for appattempt_1425973278169_0001_000002 exited with  exitCode: 1
For more detailed output, check application tracking page:http://B2ML10803:8088/proxy/application_1425973278169_0001/Then, click on links to logs of each attemp
t.
Diagnostics: Exception from container-launch.
Container id: container_1425973278169_0001_02_000001
Exit code: 1
Exception message: CreateSymbolicLink error (1314): A required privilege is not held by the client.

스택 추적 :

ExitCodeException exitCode=1: CreateSymbolicLink error (1314): A required privilege is not held by the client.

    at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)
    at org.apache.hadoop.util.Shell.run(Shell.java:455)
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715)
    at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211)
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

쉘 출력 :

1 file(s) moved.

Container exited with a non-zero exit code 1
Failing this attempt. Failing the application.
15/03/10 13:13:18 INFO mapreduce.Job: Counters: 0

해결법

  1. ==============================

    1.승리 8.1 + hadoop 2.7.0 (소스에서 빌드)

    승리 8.1 + hadoop 2.7.0 (소스에서 빌드)

  2. ==============================

    2.나는 최근에 정확히 같은 문제를 만났다. namenode를 다시 포맷하려고 시도했지만 작동하지 않아 문제를 영구적으로 해결할 수 없다고 생각합니다. @aoetalks를 참조하여 로컬 그룹 정책을 조사하여 Windows Server 2012 R2에서이 문제를 해결했습니다.

    나는 최근에 정확히 같은 문제를 만났다. namenode를 다시 포맷하려고 시도했지만 작동하지 않아 문제를 영구적으로 해결할 수 없다고 생각합니다. @aoetalks를 참조하여 로컬 그룹 정책을 조사하여 Windows Server 2012 R2에서이 문제를 해결했습니다.

    결론적으로 다음 단계를 시도하십시오.

    그래도 문제가 해결되지 않으면 관리자 계정을 사용했기 때문일 수 있습니다. 이 경우 사용자 계정 제어를 비활성화해야합니다. 관리자 승인 모드의 모든 관리자를 동일한 디렉토리 (예 : 그룹 정책의 사용자 권한 할당)에서 실행 한 다음 컴퓨터를 다시 시작하여 적용하십시오.

    참조 : https://superuser.com/questions/104845/permission-to-make-symbolic-links-in-windows-7

  3. ==============================

    3.오류의 원인을 모르지만 NameNode를 재구성하면 Windows 8에서 오류를 해결하는 데 도움이됩니다.

    오류의 원인을 모르지만 NameNode를 재구성하면 Windows 8에서 오류를 해결하는 데 도움이됩니다.

  4. ==============================

    4.해결책은 이것을, 설명은 이것을 참조하십시오 기본적으로 심볼릭 링크는 보안 위험이 될 수 있으며 UAC의 설계는 사용자 (관리자 그룹의 일부인 사용자도)가 상승 모드에서 실행되지 않는 한 심볼릭 링크를 만들지 못하게합니다.

    해결책은 이것을, 설명은 이것을 참조하십시오 기본적으로 심볼릭 링크는 보안 위험이 될 수 있으며 UAC의 설계는 사용자 (관리자 그룹의 일부인 사용자도)가 상승 모드에서 실행되지 않는 한 심볼릭 링크를 만들지 못하게합니다.

    간단히 말해서, 고급 명령 프롬프트에서 이름 노드를 다시 포맷하고 Hadoop 및 모든 Hadoop 작업을 시작하십시오.

  5. ==============================

    5.당신과 같은 문제가 발생했습니다. 자바 환경을 확인하여 문제를 해결했습니다.

    당신과 같은 문제가 발생했습니다. 자바 환경을 확인하여 문제를 해결했습니다.

  6. ==============================

    6.Windows에서 hdfs-site.xml의 구성을 다음과 같이 변경하십시오.

    Windows에서 hdfs-site.xml의 구성을 다음과 같이 변경하십시오.

    <configuration>
       <property>
           <name>dfs.replication</name>
           <value>1</value>
       </property>
       <property>
           <name>dfs.namenode.name.dir</name>
           <value>file:///C:/hadoop-2.7.2/data/namenode</value>
       </property>
       <property>
           <name>dfs.datanode.data.dir</name>
           <value>file:///C:/hadoop-2.7.2/data/datanode</value>
       </property>
    </configuration>
    

    관리 모드에서 cmd를 열고 다음 명령을 실행하십시오.

    그런 다음 관리자 모드에서 최종 jar을 실행하십시오. hadoop jar C : \ Hadoop_Demo \ wordCount \ target \ wordCount-0.0.1-SNAPSHOT.jar 파일 : /// C : /Hadoop/input.txt 파일 : /// C : / Hadoop / output

  7. ==============================

    7.나는 같은 문제를 해결했다. "명령 프롬프트"를 실행할 때 "관리자 권한으로 실행"을하겠습니다.

    나는 같은 문제를 해결했다. "명령 프롬프트"를 실행할 때 "관리자 권한으로 실행"을하겠습니다.

  8. from https://stackoverflow.com/questions/28958999/hdfs-write-resulting-in-createsymboliclink-error-1314-a-required-privilege by cc-by-sa and MIT license