Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

구분세부 내용
발생 시점
  • 2개 이상의 Impala Coordinator 또는 Impala Daemon을 Coordinator로 사용시 발생
  • Impala Coordinator에 대한 Load Balancing이 Round Robin 또는 Least Connection 등 요청시마다 변경되는 경우 발생
  • DDL → DML 등의 순서 대로 실행시 상기 조건과 결합되어 발생
발생시 결과
  • Table Not Found 등의 에러 발생
조치 방법
  • JDBC/ODBC에서는 SYNC_DDL 옵션을 지원하지 않음
  • Impala Shell 등에서 실행
참고 URL
기술적 배경
  • Impala는 다음과 같이 Query 요청을 처리하는 노드를 별도로 구성할 수 있고 이를 Impala Coordinator라고 칭하며 모든 Impala Worker(Impala Deamon)은 Impala Coordinator가 될 수 있으며, 별도로 Impala Coordinator를 둘 수 있음
  • Impala Coordinator의 주요 역할은 메타데이터를 캐슁하고, 쿼리 플랜을 작성하고, 쿼리를 실행을 관리하는 것임

Image Added

  • Impala Daemon은 자체적으로 메타데이터를 캐쉬를 가지고 있고, 메타데이터 캐쉬를 관리하는 대상 서비스는 Impala Catalog이며, 이 두 캐쉬는 기본적으로 동기화가 되어야 함
  • 동기화가 되어 있지 않다면 테이블이나 컬럼 등의 변경 사항을 탐지하지 못함
  • Impala StateStore는 메타데이터 동기화를 요청하는 notification을 담당하여 메타데이터가 변경되었을 때 Impala Deamon에 변경을 요청하는 메시지를 송신함


Image Added

  • 테이블 생성 등과 같이 메타데이터 변경이 발생하면
    • User가 Create SQL을 실행 → 특정 Impala Daemon 또는 Impala Coordinator가 Create SQL을 실행 → 자기 자신의 메타데이터 업데이트 → Impala Catalog 업데이트 → Impala StateStore 통보 → 나머지 다른 Impala Daemon 또는 Coordinator의 메타데이터 업데이트

draw.io Diagram
borderfalse
diagramNameCatalog Update
simpleViewerfalse
width
linksauto
tbstyletop
diagramDisplayName
lboxtrue
diagramWidth1074
revision1