2015-01-29 8 views
0

내 문제는 내가 5 노드 하둡 클러스터를 가지고 있는데, 클러스터의 파일은 350GB를 차지한다. 나는 3 개의 다른 파일을 결합하고 그들을 결합하는 돼지 스크립트를 실행 중입니다. 모든 맵 작업을 완료하기 위해 매 30 분마다 작업이 실행되고 줄이기 작업을 완료하는 데 6 시간이 소요됩니다. 이러한 모든 줄이기 작업은 최선의 경우 끝에 실패합니다. 최악의 경우, 내 hadop가 걸렸어, safemode에 들어가는 namenode로 인해 공간이 충분하지 않아 (할당량 초과).하둡 tmp 디렉토리가 거대하게된다

홀 사용 가능한 공간 (7TB !!)을 차지하는 tmp 디렉토리로 인해 발생하는 문제. 내 스크립트는 다음과 같습니다

info_file = LOAD '$info' as (name, size, type,generation,streamId); 
chunks_file = LOAD '$chunk' as (fp, size); 
relation_file = LOAD '$relation' as (fp, filename); 

chunks_relation = JOIN chunks_file BY fp, relation_file BY fp; 
chunks_files= JOIN chunks_relation BY $3, info_file BY $0; 

result = FOREACH chunks_files GENERATE $0,$1,$3,$5,$6,$7,$8; 
STORE result INTO '$out'; 

어떤 생각을?

답변

0

스크립트가 정상적으로 보입니다. 당신이 합류하고있는 파일의 크기는 얼마입니까?

가입은 비용이 많이 드는 연산자입니다. 복제, 비뚤어 짐, 병합 조인 돼지를 사용하여 조인을 최적화 할 수 있습니다. 이러한 조인 문서를 한 번 살펴보고 파일 크기 및 요구 사항에 따라 적용하십시오.

https://bluewatersql.wordpress.com/category/Pig/

+0

당신은 함께 20기가바이트입니다 3 파일, 모든 참여에 의해 이상 7 TB를 차지하는 경우는 정상입니다 의미합니까? – Bafla13