'환상의 조합' 임팔라·쿠두로 Operational DBMS 구축하기

Cloudera | Cloudera 2020.02.03
ⓒGetty Images Bank

빅 데이터 환경에도 유행이 있다. 최근 유행은 아파치 임팔라(Apache Impala)와 아파치 쿠두(Apache Kudu) 조합을 쓰는 것이다. 일단 한번 데이터를 투입한 후에는 업데이트와 삭제가 되지 않고, 대량의 스몰 파일(small file)을 처리해야 하는 HDFS 환경의 부족함을 메우는 수단으로 임팔라와 쿠두 조합이 유행하기 시작했다.
 

임팔라, 안 쓸 이유가 없다

클라우데라 솔루션 아키텍트 신정훈 이사에 따르면, 최근의 대세는 임팔라와 쿠두다. 장기 저장용 콜드 데이터는 HDFS에 넣고, 자주 사용하는 핫 데이터는 임팔라와 쿠두 환경을 이용하는 방식이 많이 채택되고 있다. 임팔라는 대규모 병렬 처리(MPP)를 위한 SQL 쿼리 엔진인데, 무엇보다도 성능이 임팔라의 가장 큰 장점이다. 임팔라는 설계 단계에서부터 성능을 고려한 솔루션이기 때문이다.
 
ⓒCloudera

클라우데라 세션에서 신정훈 이사는 직접 써보면 기존 SQL과 비교해 임팔라의 성능 차이가 상당하다고 말했다. 덧붙여 임팔라의 성능은 새로운 버전이 나올 때마다 더 높아지는 경향을 보인다고 설명했다.
 
ⓒCloudera

임팔라는 데몬(Daemon), 카탈로그 서비스(Catalog Service), 스테이트스토어(Statestore)로 구성되어 있다. 데몬은 데이터 노드에서 실행되는 임팔라 프로세스로 사용자의 요청을 수용하고, Coordinator와 Executor 역할을 한다. 카탈로그 서비스는 메타 데이터 동기화를 위한 프록시 역할을 한다. 데몬에서 직접 메타 데이터를 변경하면 자동으로 동기화된다. 하이브(Hive)나 HDFS에서 직접 변경하면 Refresh문이나 Invalidate metadata문을 이용해 동기화 작업을 해야 한다. 다음으로 스테이트스토어는 데몬의 상태를 확인하고 메타 데이터 동기화하는 기능을 한다.
 
ⓒCloudera
 

확장성과 안정성도 뛰어나

신정훈 이사는 많은 이가 궁금해하는 확장성과 안정성에 명쾌한 답을 제시했다. 부하가 가중되면 임팔라 데몬간 리소스 경합이 일어나고, 메모리와 네트워크 자원도 부족해진다. 이런 현상을 방지하기 위해 사용하는 것이 전용 코디네이터(Dedicated Coordinator)다. 전용 코디네이터를 통해 메타 정보를 캐싱하는 임팔라 데몬 수를 줄여 메모리 자원 사용을 최적화할 수 있다. 스테이트스토어와 전용 코디네이터 사이의 메타 정보를 동기화하기 때문에 네트워크 부하를 일으키는 요소 하나를 없앨 수 있다는 것도 장점이다. 이외에 쿼리 성능이 개선되는 효과도 있다. 신정훈 이사는 50개 노드당 1개의 전용 코디네이터를 두는 것을 권장했다.
 
ⓒCloudera


고질적인 병목 현상도 해결 

임팔라는 좋은데, 카탈로그 서비스의 병목 현상이 문제라고 생각하는 사람이 많다. 하지만 신정훈 이사는 병목 혀녀상은 임팔라 최신 버전에서는 더 이상 문제가 되지 않는다고 설명했다. 임팔라 5.16 버전에는 온디맨드 메타데이터(On-Demand Metadata)가 추가되었다. 활성화할 경우, 기존 Pub/Sub 방식으로 이루어지던 동기화가 Pull 방식으로 바뀐다. 따라서 메타 데이터 동기화와 관련된 Lock Contention 문제가 개선되어 병목 현상을 걱정하지 않아도 된다. 
 
ⓒCloudera
 

임팔라와 완벽하게 통합된 쿠두 

신정훈 이사는 HDFS 환경의 고질적인 이슈를 소개하면서 쿠두의 필요성을 설명했다. HDFS의 경우 한번 데이터를 입력한 후 업데이트와 삭제가 되지 않아 불편하고, 스몰 파일 때문에 네임 노드에 큰 부하가 걸리기도 한다. 이런 문제를 완벽하게 해결하는 대안이 바로 쿠두다.

쉽게 말하면, 쿠두는 RDB로 볼 수 있고, 스몰 파일 문제가 아예 발생하지 않는다. 신정훈 이사는 SQL 지원을 위해 임팔라에 쿠두가 완벽하게 통합되었다고 덧붙여 설명했다. 이렇게 통합되었기 때문에 쿠두는 임팔라의 모듈 기반 아키텍처가 갖는 다양한 혜택을 누릴 수 있게 되었다.

참고로 쿠두는 SQL 파서나 쉘을 제공하지 않는다. 임팔라가 제공하는 SQL 커넥터를 이용하면 데이터가 저장된 노드 상에서 쿼리를 바로 수행할 수 있다. 데이터가 네트워크를 통해 이동하는 확률을 최소화하는 이점을 제공한다. 
 
ⓒCloudera
 

임팔라 + 쿠두 = 환상의 조합

HDFS와 쿠두를 어떻게 활용하면 좋을까? 쿠두는 가변적인 실시간 분석 워크로드에 적합하다. 일반적으로 데이터 규모가 작고 지속해서 변경되는 데이터를 저장하기 좋다는 의미다. HDFS는 낮은 비용으로 확장할 때 제일 유리하다. 보통 데이터 규모가 크고 배치용으로 적합한 유형의 데이터를 저장하기 좋다. 따라서 핫 데이터는 쿠두에, 콜드 데이터는 HDFS에 두는 것이 유리할 것이다. 

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.