[HADOOP] 하둡의 setJarByClass ()
HADOOP하둡의 setJarByClass ()
Hadoop 알고리즘의 드라이버 메소드의 어느 시점에서 작업을 Mapper 및 Reducer로 설정된 클래스의 참조에 연결합니다. 예를 들면 다음과 같습니다.
job.setMapperClass(MyMapper.class);
job.setReducerClass(MyReducer.class);
매퍼와 감속기는 내부 정적 클래스로 구현되는 동안 일반적으로 드라이버 메서드가 기본입니다.
MyMapper.class 및 MyReducer.class가 MyClass.class의 내부 정적 클래스이고 드라이버 메소드가 MyClass.class의 기본이라고 가정하십시오. 때로는 위의 두 줄 바로 뒤에 다음 줄이 추가 된 것을 볼 수 있습니다.
job.setJarByClass(Myclass.class);
이 구성 단계의 의미는 무엇이며 언제 유용하거나 필수입니까?
필자의 경우 (단일 노드 클러스터 설치가 있음)이 줄을 제거하면 작업을 계속 올바르게 실행할 수 있습니다. 왜?
해결법
-
==============================
1.여기서 우리는 Hadoop이 Map 및 Reduce 작업을 수행하기 위해 노드에 어떤 jar을 보내야하는지 알아내는 데 도움을줍니다. abc-jar.jar에는 클래스 경로에 다양한 다른 jar이있을 수 있으며 드라이버 코드는 Mapper 및 Reducer 클래스와 다른 jar 또는 위치에있을 수 있습니다.
여기서 우리는 Hadoop이 Map 및 Reduce 작업을 수행하기 위해 노드에 어떤 jar을 보내야하는지 알아내는 데 도움을줍니다. abc-jar.jar에는 클래스 경로에 다양한 다른 jar이있을 수 있으며 드라이버 코드는 Mapper 및 Reducer 클래스와 다른 jar 또는 위치에있을 수 있습니다.
따라서이 setJarByClass 메소드를 사용하여 클래스가 해당 jar의 일부로 존재하는 매개 변수로 지정된 클래스를 찾아서 해당 jar을 찾도록 Hadoop에 지시합니다. 따라서 일반적으로 MapperImplementation.class 또는 Reducer 구현 또는 Mapper 및 Reducer와 동일한 jar에있는 다른 클래스를 제공해야합니다. 또한 매퍼와 감속기가 모두 같은 병의 일부인지 확인하십시오.
참조 : http://www.bigdataspeak.com/2014/06/what-is-need-to-use-jobsetjarbyclass-in.html
from https://stackoverflow.com/questions/35973532/setjarbyclass-in-hadoop by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브 쿼리는 jdbc를 통해 결과 집합을 생성 할 수 없습니다 (0) | 2019.08.15 |
---|---|
[HADOOP] 연결하는 동안 Eclipse Hadoop 플러그인에 "java.io.EOFException"이 표시됨 (0) | 2019.08.15 |
[HADOOP] 도커를 사용하여 다중 물리적 노드 hadoop 클러스터를 시작할 수 있습니까? (0) | 2019.08.15 |
[HADOOP] 하나의 코디네이터로 일부 oozie 워크 플로를 시작할 수 있습니까? (0) | 2019.08.15 |
[HADOOP] oozie를 사용한 Python 하위 프로세스 (0) | 2019.08.15 |