복붙노트

[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. ==============================

    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

  2. from https://stackoverflow.com/questions/35973532/setjarbyclass-in-hadoop by cc-by-sa and MIT license