MSCK최적화 - 아마존 EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

MSCK최적화

Hive는 해당 메타스토어에 각 테이블의 파티션 목록을 저장합니다. 그러나 파티션이 파일 시스템에 직접 추가되거나 파일 시스템에서 제거되는 경우 Hive 메타스토어는 이러한 변경 사항을 인식하지 못합니다. 이 MSCK명령은 파일 시스템에 직접 추가되거나 파일 시스템에서 제거된 파티션에 대해 Hive 메타스토어의 파티션 메타데이터를 업데이트합니다. 명령 구문은 다음과 같습니다.

MSCK [REPAIR] TABLE table_name [ADD/DROP/SYNC PARTITIONS];

Hive는 이 명령을 다음과 같이 구현합니다.

  1. Hive는 메타스토어에서 테이블의 모든 파티션을 검색합니다. 파일 시스템에 없는 파티션 경로 목록에서 메타스토어로부터 삭제할 파티션 목록을 생성합니다.

  2. Hive는 파일 시스템에 있는 파티션 경로를 수집하여 메타스토어의 파티션 목록과 비교하고 메타스토어에 추가해야 하는 파티션 목록을 생성합니다.

  3. Hive는 ADD, DROP 또는 SYNC 모드를 사용하여 메타스토어를 업데이트합니다.

참고

메타스토어에 파티션이 많은 경우 각 파티션에 대해 파일 시스템 exists API 호출을 해야 하기 때문에 파일 시스템에 파티션이 없는지 확인하는 단계를 실행하는 데 시간이 오래 걸립니다.

Amazon EMR 6.5.0에서 Hive는 라는 플래그를 도입했습니다. hive.emr.optimize.msck.fs.check 이 플래그가 활성화되면 Hive는 파일 시스템을 호출하는 대신 위 2단계에서 생성된 파일 시스템의 파티션 경로 목록에서 파티션이 있는지 확인합니다. API Amazon EMR 6.8.0에서 Hive는 기본적으로 이 최적화를 활성화하여 플래그를 설정할 필요가 없습니다. hive.emr.optimize.msck.fs.check