2011-11-18 2 views
1

몇 가지 외부 항아리를 참조하는 일부 mapreduce 작업을 썼습니다. 그래서 작업을 실행하려면 "실행중인"클러스터의 CLASSPATH에 추가했습니다.클래스 패스에 jar 파일을 추가하고 hadoop 클러스터를 재시작하지 않고 영향을받는 방법?

일단 실행하려고하면 클래스를 찾을 수 없습니다. 나는 그것을 고치는 방법을 찾았고 변경된 CLASSPATH를 에 적용하기 위해 클러스터를 다시 시작해야한다는 것을 알았고 실제로 작동했습니다.

오, 이런! CLASSPATH에 새 항아리를 추가 할 때마다 클러스터를 재시작해야합니까? 나는 그것이 합리적이라고 생각하지 않는다.

누구든지 변경 사항을 다시 시작하지 않고 적용하는 방법을 알고 있습니까?


나는 귀하의 조언을 구하는 데 약간의 세부 사항을 추가해야한다고 생각합니다.

사용자 정의 hbase 필터 클래스를 작성한 다음 병에 포장했습니다. 그리고 사용자 정의 필터 클래스를 사용하고 다른 병에 포장 한 mapreduce 작업을 작성했습니다. 필터 클래스 jar가 "실행중인"클러스터의 클래스 경로에 없으므로 추가했습니다. 그러나 클러스터를 다시 시작할 때까지 작업을 실행하지 못했습니다.

물론 필터 클래스와 작업을 하나의 항아리에 함께 포장 할 수 있다는 것을 알고 있습니다. 그러나 나는 그것을 의미하지는 않았다. 그리고 새로운 외부 항아리를 추가해야한다면 클러스터를 다시 시작해야합니까?

답변

2

작업에 필요한 타사 라이브러리가 포함되어 있는지 Cloudera article을 확인하십시오. 옵션 (1) 및 (2)에서는 클러스터를 다시 시작할 필요가 없습니다.

+0

그것은 나를 많이 도왔습니다. 감사 :) – samuel281

-1

데이터를 처리하기 위해 클래스 이름을 인터페이스 유형으로 동적으로 확인하는 시스템을 사용할 수 있습니다.

그냥 2 센트입니다.

+0

죄송합니다. 세부 사항을 써야한다고 생각합니다. – samuel281

+0

문제 없습니다 .... – r0ast3d