복붙노트

[HADOOP] 작업을 줄일지도 실행 코드의 클래스 패스에 항아리를 추가

HADOOP

작업을 줄일지도 실행 코드의 클래스 패스에 항아리를 추가

나는지도를 도구 인터페이스를 구현하는 응용 프로그램에서 작업을 줄이기 시작하려합니다. 응용 프로그램은지도를위한 전제 조건처럼 작업을 줄일 몇 가지 다른 일을한다.

이 클래스는 명령을 사용하여 항아리를 실행하는 동안 내가 클래스 패스에 그 항아리를 추가하려면 어떻게, 어떤 타사 libs와 사용 하둡 항아리 <가 myjar> [인수]

이 클라우 데라의 포스트에서 나는 타사 항아리에 HADOOP_CLASSPATH의 ENV의 VAR을 설정했지만, 그것은 작동하지 않았다. 위에서 언급 한 타사 항아리은 매퍼 / 감속기 클래스에서 작업하지를 시작 클래스가 필요합니다. 그래서 분산 캐시에 넣어 필요가 없습니다.

나는 $ HADOOP_HOME / lib 디렉토리에서 필요한 이러한 제 3 자 항아리를 복사 할 때, 그것은 작동하지만, 나는 청소기 solultion이 필요합니다.

기대에 감사합니다.

주 - 나는에 lib 디렉토리에있는 모든 타사 항아리를 넣어 것을 알고 항아리 일하는 것이 내 -지도 - job.jar-감소,하지만 난 그 자유가없는, 병이 메이븐을 사용하여 작성되는 나는 이러한 제 3 자 항아리를 원하는 이외의 내 -지도 - 줄일 - job.jar을

해결법

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

    1.미래 참조 용 - 당신은지도가 작업을 줄이기 시작되는 곳에서 클라이언트 컴퓨터에 ENV의 var에 하둡 CLASSPATH를 설정하면 갈 수있는 방법입니다.

    미래 참조 용 - 당신은지도가 작업을 줄이기 시작되는 곳에서 클라이언트 컴퓨터에 ENV의 var에 하둡 CLASSPATH를 설정하면 갈 수있는 방법입니다.

    나는 내가 잘못 방법으로 HADOOP_CLASSPATH을 수출했다, 내 실수를 알아 냈어. 항아리 사이의 구분자는, 플랫폼에 의존 유닉스에 대한 자사의 콜론 (:)

    수출 HADOOP_CLASSPATH = / 경로 /로 / 내 / jar1 : / 경로 /에 / 내 / jar2 그리고 하둡 항아리 [mainClass [인수]

    당신은 다른 곳에서 미리 정의 된 경우 HADOOP_CLASSPATH의 ENV var에에 항아리를 추가 할 수 있습니다. 수출 HADOOP_CLASSPATH = $ HADOOP_CLASSPATH : / 경로 /에 / 내 / jar1 : / 경로 /에 / 내 / jar2

  2. from https://stackoverflow.com/questions/27731065/adding-jars-to-the-classpath-of-the-code-that-launches-map-reduce-job by cc-by-sa and MIT license