2011-02-24 5 views
1

내 데이터 세트의 일부에 대해 최신 하이브를 테스트하고 있습니다. 사용자 정의 SerDe를 통해 읽는 것은 단지 2GB의 로그 파일입니다.(작은) 데이터 세트를 위해 Apache Hive에서 쿼리를 병렬화하는 방법

나는 쿼리 (4 개 MR 작업), 나는 로그를 얻고함으로써 간단 그룹을 실행하면 다음과 같은

  • 지도 :
  • 가 감소 100 % : 0 %
  • 지도 : 85 %
  • 감소 : 0 %
  • 지도 :
  • 줄이기 86 % : 0 %
,

8 코어 서버에서 하나의 코어 만 사용합니다. 낭비의 종류 ...

병렬 옵션을 활성화했지만 여전히 병렬 처리하지 않습니다. 줄이기 작업 수를 8로 설정했습니다.

데이터 세트가 다른 파일 (=> 다른 파일)이므로 적어도 일부 맵 축소 단계를 해당 파일에서 병렬로 실행할 수 있습니다. .

내 이해가 잘못 되었나요? 검색어를 작성하는 구체적인 방법이 있습니까?

감사

답변

2

당신은 간단한 GROUP BY하지만 아무것도하지 않는 경우, 유일한 처리는 어렵지하지 않은 비교이다. 즉, 얼마나 많은 매퍼가 실행 중입니까? tasktrackers는 병렬 처리되지 않습니다. 오히려 병렬 처리를 위해 여러 태스크 트래커를 사용하는 뱅크가 있습니다. 따라서 노드 당 하나의지도 작업 만 실행한다면 아무 것도 볼 수 없습니다.

또 다른 가능성은 GROUP BY를 수행하고 있기 때문에 IO가 아닌 프로세서에 바인딩되므로 여러 코어를 가져올 필요가 없다는 것입니다.

+1

답변 해 주셔서 감사합니다. 그것은 주로 로컬 모드에서 증명 테스트를했기 때문에 주로 여러 작업을 실행하지 못했기 때문이었습니다. 가상 클러스터로 변경하고 제안 된대로 여러 개의 맵과 축소판을 병렬로 실행하도록 허용하자 마자 작동했습니다. –