2016-09-14 3 views
0

많은 우수 사례에서는 데이터를 HDFS의 압축 형식으로 저장해야한다고 제안합니다.하이브의 압축으로 인해 쿼리 성능이 향상됩니까?

압축 텍스트 파일 (각각 약 250MB의 청크 된 gzip 파일)과 압축되지 않은 텍스트 파일로 구성된 테이블에서 하이브 쿼리를 실행하는 경우 명확한 성능 차이가 있습니다.

누군가 제발 무슨 일이 일어나고 있는지 설명해주세요.

내 이해에 따라 쿼리 입력이 매퍼 작업에 할당되는 동안 압축 해제 단계가 있고 쿼리가 있습니다. 이 경우 압축 해제의 오버 헤드가 발생하므로 압축되지 않은 텍스트 파일보다 어떻게 더 나은 성능을 제공 할 수 있습니까?

답변

1

여기에 포함 된 두 가지 측면이 있습니다

  1. 네트워크 오버 헤드 :지도 셔플 및 정렬에 대한 패러다임이 크게 오버 헤드 비판 줄일 수 있습니다. 처리 단계를 매우 이기적인 방식으로 보면이 단계가 원하는 처리에 아무런 도움이되지 않습니다. 또한 더 큰 데이터가 실제 레벨에서 네트워크를 통해 전송 될 때도 기가비트 주파수 스위치를 사용하는 경우에도 (매우 복잡한 작업이 아니라면) 셔플 정렬이 병목 현상이됩니다. 따라서 셔플 정렬 병목 현상을 통해 쉽게 데이터를 압축 할 수 있습니다.
  2. 스파 스 데이터 : 큰 데이터 세트는 대부분 스파 스입니다 (예외는 있지만 엄지 손가락의 법칙으로 간주합니다). 이렇게 압축은 자료의 크기를 내리고 그 후에 다시 뒤섞음 분류 단계는 매우 작다.
+0

안녕하세요! 귀하의 답변을 주셔서 감사합니다, 그것은 몇 가지 것들을 설명합니다. 클러스터에 SAN 저장소가 연결되어 있습니다. 성능 병목 현상이 여전히 발생합니까? –

+0

저는 SAN에 대해 100 % 지식이 없지만 SAN이 다중 맵퍼와 다중 감속기 사이에서 거대한 데이터 흐름을 개선 할 수 없다면 병목 현상이 발생할 것입니다. – abhiieor

-1

하이브 테이블의 데이터 압축은 디스크 사용 및 쿼리 성능면에서 비 압축 저장소보다 우수한 성능을 제공하는 것으로 알려져 있습니다.

Gzip으로 압축 된 텍스트 파일을 TextFile로 저장된 테이블로 직접 가져올 수 있습니다. 압축은 자동으로 감지되며 파일은 쿼리 실행 중에 즉석에서 압축이 풀립니다.

레코드는 압축을 수행하기 전에 BLOCK 버퍼가 1MB (기본값)까지 증가하는 동안 각 값을 개별적으로 압축합니다.

관련 문제