one of a kind scene

4-2 데이터 처리 기술_분산 컴퓨팅 기술 part3_SQL on 하둡(임팔라) 본문

ADP/이론

4-2 데이터 처리 기술_분산 컴퓨팅 기술 part3_SQL on 하둡(임팔라)

specialscene 2019. 12. 23. 20:25

분산 컴퓨팅 기술 part3_SQL on 하둡(임팔라)

SQL on 하둡 : 실시간 SQL 질의 분석 기술 중 임팔라에 대해서 살펴봄

 

임팔라외 SQL on 하둡 참고

2019/11/18 - [ADP] - 4-1 데이터 처리 프로세스_대용량의 비정형 데이터 처리방법

 

1. SQL on 하둡 개요

     • 실시간 처리라는 측면에서 하둡의 제약사항을 극복하기 위한 시도중 하나인 SQL on 하둡은 실시간 SQL 질의 분석 기술

     • SQL on 하둡 기술은 하둡에 저장된 대용량 데이터를 대화형식의 SQL 질의를 통해서 처리하고 분석하는 것. 이 중에서 임팔라(Impala)에 대해서 살펴봄

 

2. 임팔라의 개념 및 특징

     • SQL on 하둡 기술 중 먼저 대중에게 공개된 기술, Cloudera(클라우데라)에서 드레멜(Dremel)의 논문을 읽은 후 실시간 애드혹(ad-hoc)질의가 가능할 것 같다는 기술적 영감을 얻어서 개발을 시작

     • 임팔라는 분석과 트랜잭션 처리를 모두 지원하는 것을 목표로 만들어진 SQL 질의 엔진

     • 하둡(Hadoop)과 Hbase에 저장된 데이터를 대상으로 SQL질의를 할 수 있음

     • 고성능을 낼 수 있도록 자바(Java) 대신 C++언어를 사용

     • 하이브(Hive)가 하둡에 저장된 다양한 형태의 비정형 데이터를 처리하는 표준 SQL 솔루션으로 사용되고 있지만, 

     • 더 빠른 처리가 필요한 비즈니스 요구 사항 때문에 임팔라 같은 기술이 대두됨

 

3. 임팔라의 구성요소

구분 설명
클라이언트 - 임팔라에 접속해서 테이블 관리, 데이터 조회 등의 작업 수행
- ODBC/JDBC 클라이언트, 임팔라쉘 등에 해당
메타스토어 - 임팔라로 분석할 대상 데이터들의 정보를 관리
- 하이브의 메타데이터를 같이 사용
임팔라 데몬 - 시스템에 ImpalaD로 표시됨
- 클리이언트의 SQL 질의를 받아 데이터 파일들의 읽기/쓰기 작업을 수행
- 임팔라 데몬은 질의 실행 계획기, 질의 코디네이터, 질의 실행엔진으로 구성됨
스테이트 스토어 - 임팔라 데몬들의 상태를 체크하고 상태정보를 관리해주는 데몬
- 임팔라 데몬에 장애가 생기면 다른 데몬들에게 이 사실을 알려서 이후부터는 장애가 발생한 데몬에게는 질의 요청이 가지 않도록함
스토리지 - 분석할 데이터의 저장소로 현재는 에이치베이스(HBase), 하둡 분산 파일 시스템(HDFS) 두 가지를 지원

 

4. 임팔라 동작 방식

<임팔라 아키텍처>

     • 모든 노드에 임팔라 데몬이 구동되며, 사용자는 이 데몬들이 구동된 임의의 노드에 JDBC, ODBC, 임팔라쉘을 이용하여 질의를 요청할 수 있다.

     • 사용자의 질의는 데이터의 지역성을 고려해서 노드 전체로 분산되어 수행됨

     • 사용자의 질의 요청을 받은 코데네이터 데몬은 분산되어 수행된 각 임팔라 노드들의 부분 결과들을 취합한 후 결과값을 만들어서 사용자에게 제공

     • 실제 운영 환경에서는 라운드 로빈 방식으로 사용자 질의를 분산시켜서 질의에 대해 전 노드들이 코디네이터 역할을 고르게 수행할 수 있도록 해야함

     • 라운드 로빈 : 여러 프로세스들이 (1/n등분해서) 순서대로 돌아가면서 처리되는 스케줄링 방식

 

5. 임팔라의 SQL 구문

     • 임팔라는 기본적으로 하이브의 SQL을 이용하지만, 모든 하이브 SQL을 지원하는 것은 아님

     • 따라서, 어떤 구문이 지원되는지 확인이 필요

<임팔라 SQL 구문(표)>

6. 임팔라 데이터 모델

     • 임팔라는 HDFS(하둡 분산 파일시스템)에 데이터를 저장하며, 어떤 저장포맷 사용하느냐에 따라 데이터 조회시 처리 성능이 달라짐

<임팔라 데이터 모델(표)>