2013-04-06 2 views
2

저는 배포해야하는 많은 작은 파일 (크기 ~ 1MB)이 있습니다. Hadoop과 HDFS는 대용량 파일을 선호하는 것으로 알려져 있습니다. 분산 된 파일은 로컬 컴퓨터에 저장되므로 분산 캐시에도 적용 할 수 있는지 여부는 알 수 없습니다.작은 파일을 Hadoop Distributed Cache 용 큰 파일에 병합 하시겠습니까?

병합해야하는 경우 파일을 HDFS에서 프로그래밍 방식으로 병합하는 가장 좋은 방법은 무엇입니까?

하나 더 질문 : symlink를 사용하면 어떤 이점이 있습니까? 감사합니다

당신은 당신의 작은 파일의 아카이브 (타르 또는 우편)를 만들고 다음과 같이 분산 캐시에 추가 할 수 있습니다

답변

2

: 당신의 매퍼/감속기에있는 파일을

DistributedCache.addCacheArchive(new URI("/myapp/myzip.zip", job); 

을 그리고 수는 다음과 같이

public void configure(JobConf job) { 
     // Get the cached archives/files 
     File f = new File("./myzip.zip/some/file/in/zip.txt"); 
     } 

더 여기 here

+0

감사합니다. 나는 그것을 시도 할 것이다. 실적에 대해 알고 계시나요? 그것은 증가 할 것인가? – v4r

+0

벤치마킹을하지는 않았지만 조금 개선되었습니다. – Amar

2

가 작은 파일 문제에 클라우 데라에서 blog입니다 읽어보십시오.

관련 문제