[HADOOP] 왜 하이브에서 텍스트 파일 형식에 비해 마루가 느려 집니까?
HADOOP왜 하이브에서 텍스트 파일 형식에 비해 마루가 느려 집니까?
승인! 그래서 Parquet을 하이브 테이블의 스토리지 형식으로 사용하기로 결정했고 실제로 클러스터에서 구현하기 전에 몇 가지 테스트를 실행하기로 결정했습니다. 놀랍게도 Parquet는 일반 텍스트 파일보다 빠르다는 일반적인 개념에 비해 테스트에서 속도가 느 렸습니다.
MapR에서 Hive-0.13을 사용하고 있습니다.
내 작업의 흐름을 따르십시오.
표 A
형식-텍스트 형식
테이블 크기-2.5Gb
표 B
형식-쪽모이 세공
테이블 크기-1.9Gb
[A에서 select *로 마루로 저장된 테이블 B 만들기]
표 C
형식 - 부피가 큰 압축 마루
테이블 크기-1.9Gb
[선택 *에서 parquet tblproperties ( "parquet.compression"= "SNAPPY")로 저장된 테이블 C 작성]
이제 위에서 언급 한 테이블에 대한 몇 가지 테스트를 실행하고 세부 사항을 따릅니다.
표 A
지도 - 15
감소-1
누적 CPU - 123.33 초
소요 시간-59.057 초
표 B
지도 - 8
감소-1
누적 CPU - 204.92 초
소요 된 시간 - 50.33 초
표 A
지도 - 15
감소-0
누적 CPU - 51.18 초
소요 시간-25.296 초
표 B
지도 - 8
줄이기 - 0
누적 CPU-117.08 초
소요 시간-27.448 초
표 A
지도 - 15
감소-0
누적 CPU-57.55 초
소요 된 시간 - 20.254 초
표 B
지도 - 8
줄이기 - 0
누적 CPU - 113.97 초
소요 시간-27.678 초
표 A
지도 - 15
줄이기 - 0
누적 CPU-57.55 초
소요 된 시간 - 20.254 초
표 B
지도 - 8
감소-0
누적 CPU - 113.97 초
찍은 시간 - 27.678 초
표 A
지도-15
감소-1
누적 CPU-127.85 초
소요 시간-29.68 초
표 B
지도 - 8
감소-1
누적 CPU-255.2 초
소요 시간-41.025 초
두 테이블 모두에 적용한 거의 모든 작업에서 행 개수 연산을 제외하고 쿼리를 실행하는 데 소요되는 시간 측면에서 보면 Parquet이 뒤처져 있다는 것을 알 수 있습니다.
또한 표 C를 사용하여 위에서 언급 한 작업을 수행했지만 결과는 거의 비슷한 줄에 TextFile 형식으로 다시 나타 났으며 두 가지가 더 빠릅니다.
어떤 사람이 내가 뭘 잘못하고 있는지 알려주실 수 있습니까?
감사!
편집하다
스토리지 형식 목록에 ORC를 추가하고 테스트를 다시 실행했습니다. 세부 사항을 따른다.
행 수 연산
텍스트 형식 누적 CPU-123.33 초
쪽모이 세공 형식 누적 CPU-204.92 초
ORC 형식 누적 CPU-119.99 초
SNAPPY 누적 CPU가있는 ORC-107.05 초
열 연산의 합
텍스트 형식 누적 CPU - 127.85 초
마루판 형식 누적 CPU - 255.2 초
ORC 형식 누적 CPU-120.48 초
SNAPPY 누적 CPU가있는 ORC - 98.27 초
열 조작의 평균
텍스트 형식 누적 CPU - 128.79 초
쪽모이 세공 형식 누적 CPU-211.73 초
ORC 형식 누적 CPU-165.5 초
SNAPPY 누적 CPU가있는 ORC-135.45 초
where 절을 사용하여 주어진 범위에서 4 개의 열 선택
텍스트 형식 누적 CPU-72.48 초
쪽모이 세공 형식 누적 CPU-136.4 초
ORC 형식 누적 CPU - 96.63 초
SNAPPY 누적 CPU가있는 ORC-82.05 초
이것이 ORC가 Parquet보다 빠르다는 것을 의미합니까? 아니면 쿼리 응답 시간과 압축 비율을 향상시킬 수있는 방법이 있습니까?
감사!
해결법
from https://stackoverflow.com/questions/32350664/why-is-parquet-slower-for-me-against-text-file-format-in-hive by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브에 외부 테이블이있는 배열 열 유형을 지원하는 가장 좋은 방법은 무엇입니까? (0) | 2019.08.06 |
---|---|
[HADOOP] 단일 시스템의 Hadoop에서 데이터 노드 실패 (0) | 2019.08.06 |
[HADOOP] 돼지의 group_concat? (0) | 2019.08.06 |
[HADOOP] 두 테이블을 비교하고 HIVE와 다른 행을 반환하는 방법 (0) | 2019.08.06 |
[HADOOP] Hive의 JSON 문자열에서 선택한 값을 추출하는 방법 (0) | 2019.08.06 |