복붙노트

[HADOOP] cygwin에서 간단한 map-reduce hadoop 예제를 실행하는 데 문제가 있음

HADOOP

cygwin에서 간단한 map-reduce hadoop 예제를 실행하는 데 문제가 있음

나는 독립 실행 형 모드에서 64 비트 Windows 7을 실행하는 노트북에서 Hadoop을 실행하려고합니다. Cygwin 1.7을 기본 폴더 (c : \ cygwin)에 설치했습니다. C : \ jdk1.7.0_03 폴더에 최신 JDK가 있으며 JAVA_HOME 환경 변수를 설정했습니다.

cygwin 프롬프트에서 다음 명령을 실행하려고하면 :

$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'

내가 얻은 오류는 다음과 같습니다.

12/03/17 19:08:43 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
java.io.IOException: Failed to set permissions of path: \tmp\hadoop-ehtzrhf\mapred\staging\ehtzrhf837602798\.staging to 0700
        at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:682)
        at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:655)
        at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:484)
        at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:319)
        at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189)
        at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:116)
        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:848)
        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:842)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
        at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:842)
        at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:816)
        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1253)
        at org.apache.hadoop.examples.Grep.run(Grep.java:69)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.hadoop.examples.Grep.main(Grep.java:93)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
        at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139)
        at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:64)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)

나는 Hadoop 1.0.1과 hadoop-0.20.205.0을 모두 시험해 보았고 같은 문제가 발생했다. .bashrc를 다음과 같이 업데이트했습니다.

export TMP=/cygdrive/c/temp
export TEMP=/cygdrive/c/temp

또한 cygwin bin 폴더를 경로에 추가했습니다.

export PATH=.:/cygdrive/c/cygwin/bin:$HADOOP_INSTALL/bin

또한 경로가 \ tmp ... / tmp / 대신에 표시되는 것이 매우 이상하다는 것을 알았습니다.

Linux VM을 다시 컴파일하거나 실행하는 것, 아이디어가 부족합니까?

해결법

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

    1.고정 (메이저 야크 면도)

    고정 (메이저 야크 면도)

    https://issues.apache.org/jira/browse/HADOOP-7682?focusedCommentId=13236645#comment-13236645

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

    2.다음은 야크 면도 할 필요가없는 간단한 사용 방법입니다.

    다음은 야크 면도 할 필요가없는 간단한 사용 방법입니다.

    https://github.com/congainc/patch-hadoop_7682-1.0.x-win

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

    3.나는 작업이 파견되고, 실행 된 작업 및 결과가 컴파일되는 지점까지이 작업을 수행 할 수있었습니다.

    나는 작업이 파견되고, 실행 된 작업 및 결과가 컴파일되는 지점까지이 작업을 수행 할 수있었습니다.

    그러나 우리는 서블릿이 cygwin 심볼릭 링크를 이해할 수 있도록해야한다. 나는 부두에서 이것을 어떻게하는지 모른다.

    이 두 링크는 ​​Tomcat과 부두가 심볼릭 링크를 따르는 것을 허용하는 방법을 보여 주지만 cygwin에서 이것이 작동하는지 모르겠습니다. * http://www.lamoree.com/machblog/index.cfm?event=showEntry&entryId=A2F0ED76-A500-41A6-A1DFDE0D1996F925 Tomcat의 단일 디렉토리에 대한 Symlinks 구성

    그렇지 않으면 우리는 부두 코드를 열고 java.io.File을 org.apache.hadoop.fs.LinkedFile로 대체해야합니다.

  4. from https://stackoverflow.com/questions/9755508/problems-running-simple-map-reduce-hadoop-examples-in-cygwin by cc-by-sa and MIT license