복붙노트

[HADOOP] Java 클래스 파일의 Hadoop Streaming -file 옵션 관련 문제점

HADOOP

Java 클래스 파일의 Hadoop Streaming -file 옵션 관련 문제점

나는 hadoop에서 매우 기본적인 문제로 고심하고 있습니다. "-file"옵션에서 스트리밍.

먼저 스트리밍의 매우 기본적인 예를 시도했습니다.

hadoop @ ubuntu : / usr / local / hadoop $ bin / hadoop jar contrib / streaming / hadoop-streaming-0.20.203.0.jar-매퍼 org.apache.hadoop.mapred.lib.IdentityMapper \ -reducer / bin / wc -inputformat KeyValueTextInputFormat-입력 gutenberg / *-출력 구텐베르크 출력

그것은 절대적으로 잘 작동했습니다.

그런 다음 IdentityMapper.java 소스 코드를 복사하여 컴파일했습니다. 그런 다음이 클래스 파일을 / home / hadoop 폴더에 넣고 터미널에서 다음.

hadoop @ ubuntu : / usr / local / hadoop $ bin / hadoop jar contrib / streaming / hadoop-streaming-0.20.203.0.jar-파일 ~ / IdentityMapper.class -mapper IdentityMapper.class \ -reducer / bin / wc -inputformat KeyValueTextInputFormat-입력 gutenberg / *-출력 구텐베르크 출력

stderr 파일에서 다음 오류로 실행이 실패했습니다.

java.io.IOException : "IdentityMapper.class"프로그램을 실행할 수 없습니다 : java.io.IOException : error = 2, 해당 파일 또는 디렉토리가 없음

그런 다음 다시 IdentityMapper.class 파일을 복사하여 시도했습니다. hadoop 설치 및 다음을 실행했습니다.

hadoop @ ubuntu : / usr / local / hadoop $ bin / hadoop jar contrib / streaming / hadoop-streaming-0.20.203.0.jar-파일 IdentityMapper.class -mapper IdentityMapper.class \ -reducer / bin / wc -inputformat KeyValueTextInputFormat-입력 gutenberg / *-출력 구텐베르크 출력

그러나 불행히도 다시 같은 오류가 발생했습니다.

더 이상 움직일 수 없으므로 도와 드리겠습니다. 이것을 극복하지 않고.

기대 해줘서 고마워요.

해결법

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

    1.왜 클래스를 컴파일하고 싶습니까? 하둡 병에 이미 컴파일되어 있습니다. Hadoop은 리플렉션을 사용하여이 매핑 클래스의 새 인스턴스를 인스턴스화하기 때문에 클래스 이름 (org.apache.hadoop.mapred.lib.IdentityMapper)을 전달하고 있습니다.

    왜 클래스를 컴파일하고 싶습니까? 하둡 병에 이미 컴파일되어 있습니다. Hadoop은 리플렉션을 사용하여이 매핑 클래스의 새 인스턴스를 인스턴스화하기 때문에 클래스 이름 (org.apache.hadoop.mapred.lib.IdentityMapper)을 전달하고 있습니다.

    이것이 클래스 경로에 있는지 확인해야합니다 (예 : 항아리 안에서 당신은 일을 통과하고 있습니다.

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

    2.다른 질문과 같은 대답, hadoop이 CLASSPATH에없는 여러 항아리를 지원하지 않기 때문에 -file을 사용하여 항아리를 보낼 수는 없습니다. 스트리밍 문서를 확인하십시오.

    다른 질문과 같은 대답, hadoop이 CLASSPATH에없는 여러 항아리를 지원하지 않기 때문에 -file을 사용하여 항아리를 보낼 수는 없습니다. 스트리밍 문서를 확인하십시오.

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

    3.나는 비슷한 문제를 만났다. jar 파일을 HADOOP_CLASSPATH에 추가하면 문제가 해결되었습니다. 자세한 내용은 다음을 참조하십시오 : http://blog.cloudera.com/blog/2011/01/how-to-include-third-party-libraries-in-your-map-reduce-job/

    나는 비슷한 문제를 만났다. jar 파일을 HADOOP_CLASSPATH에 추가하면 문제가 해결되었습니다. 자세한 내용은 다음을 참조하십시오 : http://blog.cloudera.com/blog/2011/01/how-to-include-third-party-libraries-in-your-map-reduce-job/

  4. from https://stackoverflow.com/questions/6790110/problem-with-hadoop-streaming-file-option-for-java-class-files by cc-by-sa and MIT license