2012-07-15 4 views
0

WordCount 예제를 작성한 다음 이클립스 프로젝트에서 MyJar.jar과 같은 외부 jar 파일을 포함한다고 가정하자. 지금은 word.jar 파일로 전체 단어 수 프로젝트를 내보낼 경우, 다음Hadoop의 외부/jar 파일은 어디에 저장되어 있습니까?

$> hadoop jar word.jar WordCount input output 

내가 작업이 실행하고 word.jar이 MyJar.jar 파일이 포함 된 lib 디렉토리에있을 것이라는 점을 이해 입력합니다. 이제 HDFS에서이 jar 파일의 메소드를 호출하는 작업이 실행 중일 때이 jar 파일 MyJar 파일이 어디에 저장됩니까?

답변

5

bin/hadoop 스크립트는 실제로 work.jar 파일을 로컬 파일 시스템의 tmp 폴더에 압축을 풉니 다.

작업 클라이언트는 원래 jar, 모든 lib jar 및 기타 작업 파일 (예 : job.xml, 분산 캐시 파일 등)이 업로드되는 HDFS에서 작업 폴더 생성을 처리합니다.

작업이 클러스터 노드에서 실행되면 이러한 파일은 해당 노드의 로컬 파일 시스템에있는 tmp 작업 디렉토리로 다시 복사됩니다. 효율성을 위해 파일은 해당 노드에서 실행되는 각 맵 작업 대신 한 번만 복사됩니다.

+0

그건 의미가 있습니다. 그러나 클라이언트는 작업 JAR 파일, 구성 파일 및 계산 된 입력 스플릿을 포함하여 작업을 실행하는 데 필요한 리소스를 작업 ID 다음에 이름이 지정된 디렉토리의 작업 추적기의 파일 시스템에 복사합니다. 작업 JAR은 높은 복제 인수로 복사됩니다 (기본값은 10). 이 단락은별로 의미가 없습니다. 첫째, 그것은 클라이언트가 구직자의 fs에 복제본을 복사 한 다음 작업 병이 고도로 복제되었다고 말하기 때문입니다. – Razvan

+0

직업 추적자 fs에 의해, 그들은 HDFS를 의미합니다. –

관련 문제