[HADOOP] Tez 및 Map reduce에서 "count (*)"를 실행하는 동안 동작의 차이
HADOOPTez 및 Map reduce에서 "count (*)"를 실행하는 동안 동작의 차이
최근 에이 문제가 발생했습니다. Hadoop 분산 파일 시스템 경로 및 관련 하이브 테이블에 파일이 있습니다. 테이블에는 양쪽에 30 개의 파티션이 있습니다.
HDFS에서 5 개의 파티션을 삭제 한 후 "msck repair table
select count (*)
그러나 hive.execution.engine을 "mr"로 설정하고 "select count (*)
지금 두 가지 질문이 있습니다.
도움을 주셔서 감사합니다.
해결법
-
==============================
1.MSCK [복구] 테이블 table_name [ADD / DROP / SYNC PARTITIONS];
MSCK [복구] 테이블 table_name [ADD / DROP / SYNC PARTITIONS];
이렇게하면 메타 데이터가 아직없는 파티션의 파티션에 대한 메타 데이터가 Hive 메타 스토어로 업데이트됩니다. MSC 명령의 기본 옵션은 ADD PARTITIONS입니다. 이 옵션을 사용하면 HDFS에는 있지만 메타 스토어에는없는 파티션을 메타 스토어에 추가합니다. DROP PARTITIONS 옵션은 이미 HDFS에서 제거 된 메타 스토어에서 파티션 정보를 제거합니다. SYNC PARTITIONS 옵션은 ADD 및 DROP PARTITIONS를 모두 호출하는 것과 같습니다.
그러나 이것은 Hive 버전 3.0에서만 사용할 수 있습니다. 참조-HIVE-17824
귀하의 경우 버전은 Hive 1.2이며 아래는 Metastore에서 HDFS 파티션과 테이블 파티션을 동기화하는 단계입니다.
ALTER TABLE
DROP PARTITION ( ); HDFS에서와 같이 HMS의 파티션을 동기화해야합니다.
또는 테이블 (EXTERNAL 테이블 인 경우)을 삭제하고 다시 작성하고 새로 작성된 테이블에서 MSCK REPAIR를 수행 할 수 있습니다. 외부 테이블을 삭제해도 기본 데이터는 삭제되지 않습니다.
참고 : 기본적으로 MSCK REPAIR는 HDFS의 새로 추가 된 파티션 만 Hive Metastore에 추가하며 Hive Metastore에서 HDFS에서 수동으로 삭제 된 파티션은 삭제하지 않습니다.
====
나중에 이러한 단계를 피하려면 Hive에서 ALTER TABLE
DROP PARTITION ( )을 사용하여 파티션을 직접 삭제하는 것이 좋습니다.
from https://stackoverflow.com/questions/57679143/diffrence-in-behaviour-while-running-count-in-tez-and-map-reduce by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hive / Pig / MapReduce를 사용하여 재귀 계층 구조를 병합하는 방법 (0) | 2019.09.15 |
---|---|
[HADOOP] Mapreduce XML 입력 형식-사용자 정의 형식 작성 (0) | 2019.09.15 |
[HADOOP] Hive, Impala 또는 Pig에서 문자열 일치로 테이블 조인 (0) | 2019.09.15 |
[HADOOP] HADOOP-간단한 MR 작업에서 위상 중단을 줄입니다 (0) | 2019.09.15 |
[HADOOP] hadoop이 서비스를 시작하기 전에 비밀번호를 묻는 이유는 무엇입니까? (0) | 2019.09.15 |