[HADOOP] Java 클래스 파일의 Hadoop Streaming -file 옵션 관련 문제점
HADOOPJava 클래스 파일의 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.왜 클래스를 컴파일하고 싶습니까? 하둡 병에 이미 컴파일되어 있습니다. Hadoop은 리플렉션을 사용하여이 매핑 클래스의 새 인스턴스를 인스턴스화하기 때문에 클래스 이름 (org.apache.hadoop.mapred.lib.IdentityMapper)을 전달하고 있습니다.
왜 클래스를 컴파일하고 싶습니까? 하둡 병에 이미 컴파일되어 있습니다. Hadoop은 리플렉션을 사용하여이 매핑 클래스의 새 인스턴스를 인스턴스화하기 때문에 클래스 이름 (org.apache.hadoop.mapred.lib.IdentityMapper)을 전달하고 있습니다.
이것이 클래스 경로에 있는지 확인해야합니다 (예 : 항아리 안에서 당신은 일을 통과하고 있습니다.
-
==============================
2.다른 질문과 같은 대답, hadoop이 CLASSPATH에없는 여러 항아리를 지원하지 않기 때문에 -file을 사용하여 항아리를 보낼 수는 없습니다. 스트리밍 문서를 확인하십시오.
다른 질문과 같은 대답, hadoop이 CLASSPATH에없는 여러 항아리를 지원하지 않기 때문에 -file을 사용하여 항아리를 보낼 수는 없습니다. 스트리밍 문서를 확인하십시오.
-
==============================
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/
from https://stackoverflow.com/questions/6790110/problem-with-hadoop-streaming-file-option-for-java-class-files by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] OpenJDK 클라이언트 VM-메모리를 할당 할 수 없습니다 (0) | 2019.08.14 |
---|---|
[HADOOP] hadoop 스트리밍-파이썬을 사용하여 두 개의 diff 파일을 내부 결합하는 방법 (0) | 2019.08.14 |
[HADOOP] 하이브에서 열 유형 변경 (0) | 2019.08.14 |
[HADOOP] Spark의 Hive 쿼리에 대한 HIVE_STATS_JDBC_TIMEOUT (0) | 2019.08.14 |
[HADOOP] 마루 파일을로드하고 같은 수의 hdfs 파티션을 유지 (0) | 2019.08.14 |