툴 인터페이스를 구현하는 응용 프로그램에서 맵 축소 작업을 시작하려고합니다. 응용 프로그램은지도 축소 작업의 전제 조건과 같은 몇 가지 다른 작업을 수행합니다.맵 축소 작업을 시작하는 코드의 클래스 경로에 jar 파일 추가
이 클래스 명령을 사용하여 항아리를 실행하는 동안 내가 클래스 패스에 그 항아리를 추가하려면 어떻게, 어떤 타사 libs와 사용 하둡 항아리 <가 myjar>이 Cloudera's post에서
내가 HADOOP_CLASSPATH을 설정하려고 [인수] env var를 제 3 자 항아리에 전달했지만 효과가 없었습니다. 위에서 언급 한 제 3 자 jar는 Mapper/Reducer 클래스가 아닌 작업을 시작하는 클래스에서만 필요합니다. 분산 캐시에 넣을 필요가 없습니다.
$ HADOOP_HOME/lib 아래에 필요한 타사 jar 파일을 복사하면 작동하지만 깨끗한 해결책이 필요합니다.
감사합니다.
주 - 모든 타사 jar 파일을 my-map-reduce-job.jar 항아리의 lib 디렉토리에 넣는 것이 효과적 일지는 몰라도 그 자유가 없으며 항아리는 Maven을 사용하여 만들어지기를 원합니다. map-reduce-job.jar 외부에있는 제 3 자 jw
이렇게하면 mapred를 호출하려고합니다. 그렇지 않아? 또는 hadoop fs -ls를 시도해도 예외가 발생합니까? – SMA
hadoop -fs 명령에 대한 예외가 발생하지 않습니다. 스레드 "main"의 예외 java.lang.NoClassDefFoundError 타사 jar에있는 클래스에 대한 예외입니다. 감사합니다. – Niks
예. 그렇다면 모든 맵핑 된 프로세스에 해당 타사 jar도 필요합니다. 따라서 다중 노드 클러스터를 가지고 있다면 다른 시스템에도이 jar를 배포해야합니다. – SMA