임팔라는 하둡상에서 맵-리듀스(Map-Reduce)를 이용하지 않고 SQL(Standard Query Language)을 처리하는 기능을 내장한 제품입니다임팔라를 이용하면 하둡(Hadoop)의 하이브(Hive) 기술을 사용하지 않고서도 SQL 분석이 가능함으로써 데이터 처리시간을 단축할 수 있습니다.

 

하이브(Hive) 구조의 문제점

하이브(Hive)는 유사 ANSI SQL을 사용할 수 있어 기존 분석가가 쉽게 사용할 수 있다는 장점을 가지고 있는 반면에대용량 병렬처리 기반 데이터 웨어하우스(DW, Data Warehouse) 시스템보다 SQL 실행 시간이 많이 소요된다는 단점이 있습니다.

 

이유는 하이브가 SQL을 맵-리듀스(Map-Reduce) 작업으로 변환하는 작업이 중간에 추가되었기 때문입니다-리듀스는 사용자들이 제어하기에는 불편한 점이 많고 처리 속도가 느리다는 태생적 단점이 있습니다.

 

피그(Pig)와 하이브(Hive)는 맵-리듀스 프레임워크의 사용 편의성을 높이기 위해서 2008년에 등장한 플랫폼이었습니다. Pig Hive 모두 하둡의 서브 프로젝트이며하이-레벨 언어(High-Level Language)입니다차이점은 Pig는 절차적인 언어임에 반해서 Hive SQL과 유사한 선언적인 언어입니다. Pig Hive의 등장으로 하둡 사용자들이 편리하게 대용량 데이터 분석작업을 수행할 수 있었습니다.

 

Pig나 Hive 모두가 사용자들에게 데이터를 쉽게 조회할 수 있는 수단을 제공한 반면에 데이터를 처리하기 위해서는 맵-리듀스 언어로 변환되어 처리가 되었습니다문제는 맵-리듀스는 분산 환경에서 대용량의 데이터를 배치(Batch) 형태로 처리되도록 설계가 되어서속도가 느린 단점을 가지고 있었고이로 인하여 Pig Hive 역시 맵-리듀스 위에서 동작하기 때문에 같은 문제점을 가지고 있는 것입니다.


하이브와 맵-리듀스의 관계 ]

 

 

 

아파치 임팔라(Impala)

임팔라는 H베이스(HBase)나 맵-리듀스 같은 별도 계층을 거치지 않고 HDFS(Hadoop Distributed File System)와 직접 통신을 합니다그리고 하이브처럼 하이브쿼리언어(HiveQL)’를 사용합니다.

 

클라우데라는 임팔라와 하이브의 최대 차이를 성능으로 꼽습니다하이브는 자바로 만들어졌지만 임팔라는 C++ 기반으로 만들어졌으며별도의 실행엔진을 사용하므로 맵-리듀스 프로그래밍을 할 필요가 없습니다.

 

임팔라는 맵-리듀스와는 달리 쿼리(Query)를 아주 낮은 지연속도로 처리할 수 있다고 합니다-리듀스에 있는 셔플링(Shuffling)’ 단계를 거치지 않아 테이블간의 조인(Join) 작업도 반드시 맵-리듀스 처럼 다대다 커뮤니케이션을 요구하지 않습니다.

 

셔플링(Shuffling)

메모리에 저장되어 있는 맵 함수의 출력 데이터를 파티셔닝과 정렬을 해서 로컬 디스크에 저장한 후에 네트워크를 통해 리듀서의 입력 데이터로 전달합니다.

 

 

[ 임팔라 다이어그램 ]

 

2012년부터 하둡 분야의 주요 관심사 중에 하나가 임팔라와 타조 같은 ‘SQL 온 하둡(SQL on Hadoop)’ 기술이였습니다그 이유는 임팔라 같은 기술이 완성이 되면하둡이 실시간으로 대용량 데이터를 분석할 수 있는 기반이 마련이 된 것이며기존의 데이터웨어하우스(DW) 제품을 대체할 수 있는 가장 중요한 문제를 해결한 것이기 때문입니다.

 

기업들은 고가의 하드웨어를 사용하는 데이터웨어하우스(DW) 어플라이언스와 솔루션을 구매하지 않고저가의 하드웨어와 솔루션 업체에 종속되지 않는 오픈소스를 확보하게 되어 비용면에서도 큰 이익을 취할 수 있습니다. 

+ Recent posts