본문 바로가기
AI 및 데이터 분석

빅데이터 탐색을 위한 주요 기술 도구들

by riML 2023. 11. 29.

1. 하이브

하이브는 하둡 생태계에서 데이터를 탐색하고 분석하기 위한 SQL과 유사한 인터페이스를 제공하는 도구로, 페이스북에서 개발되어 많은 관심을 받았습니다. 초기에는 맵리듀스를 사용하여 데이터에 접근했지만, 맵리듀스는 복잡한 프로그래밍 기법이 필요하여 비전문가들에게는 어려움이 있었습니다. 이에 대한 해결책으로 페이스북은 SQL과 유사한 쿼리 언어를 제공하는 하이브를 개발하였습니다. 하이브는 2016년 2월에 버전 2.0이 공개되면서 빅데이터 분석에서 주목받는 SQL on Hadoop 도구 중 하나로 성장하였습니다.

하이브의 아키텍처에서 주목할 만한 특징은 하이브 클라이언트에서 작성된 SQL 쿼리가 맵리듀스 프로그램으로 변환되어 실행된다는 것입니다. 사용자는 CLI나 웹 콘솔을 통해 하이브 QL을 작성하면, 하이브의 쿼리 엔진이 SQL 파서를 사용하여 이를 맵리듀스 프로그램으로 변환하고, 해당 프로그램은 하둡 클러스터에서 분산 실행됩니다. 이 과정에서 하이브의 MetaStore가 중요한 역할을 합니다. MetaStore는 하이브 DW에서 정의한 데이터베이스, 테이블, 파티션 정보 등을 저장하고 관리하여, 하이브 QL이 실행될 때 메타스토어를 참고하여 런타임 환경을 생성합니다.

 

2. 스파크

하이브는 빅데이터를 다루기 위해 맵리듀스를 하이브 QL로 감싸 접근성을 향상시켰지만, 맵리듀스 코어를 직접 사용하면서 성능 면에서 한계를 경험했습니다. 이러한 단점을 극복하고자 여러 시도가 있었는데, 그 중 하나가 스파크입니다. 스파크는 UC 버클리의 AMPLab에서 개발되었고, 2010년에 오픈소스로 공개되었으며, 2013년 6월에는 아파치 재단으로 이관되어 최상위 프로젝트가 되었습니다.

스파크의 주요 특징 중 하나는 고성능의 인메모리 분석입니다. 기존의 맵리듀스 기반 도구인 하이브나 피그는 대량의 데이터를 로컬 디스크에 의존하여 처리하면서 높은 I/O 발생과 그로 인한 레이턴시 문제를 겪었습니다. 스파크는 이러한 제약을 극복하기 위해 데이터 가공 처리를 인메모리에서 신속하게 처리합니다. 스파크는 스파크 SQL, 스파크 스트리밍, 머신러닝 등 다양한 기능을 제공하며, 활용성이 높고 다양한 클라이언트 언어와 라이브러리를 지원하여 범용성을 높였습니다. 또한 스파크 코어의 핵심 기능에는 API로 접근할 수 있어 유연한 아키텍처를 구성할 수 있습니다. 스파크 엔진은 대규모 분산 노드에서 최적의 성능을 발휘하며, 스파크는 아파치 메소스, 하둡 YARN과 같은 분산 노드 관리 시스템과 통합되어 사용됩니다. 또한 데이터 소스 영역에서는 높은 호환성을 제공하여 HDFS, HBase, 카산드라, 일래스틱 서치 등과의 연동이 용이합니다.

 

3. 우지

우지는 하이브, 피그, 스파크와 같은 빅데이터 처리 도구들을 활용하여 데이터의 처리, 탐색, 분석을 복잡한 선후행 관계와 함께 반복적으로 수행하는 과정에서 필요한 도구입니다. 대규모 빅데이터 시스템에서는 다양한 데이터셋을 대상으로 한 수백 개의 데이터 후처리 잡이 실행되며, 이 작업들은 데이터 간의 의존성을 고려하여 복잡하게 조율됩니다. 이런 복잡한 데이터 파이프라인 작업을 관리하기 위해 우지는 방향성 있는 비순환 그래프 등을 사용하여 워크플로우를 정의합니다.

우지 클라이언트에서 작성한 워크플로우는 우지 서버로 전송되어 메타화되고 RDBMS에 저장됩니다. 우지 서버에는 등록된 워크플로우를 스케줄링하는 Coordinator가 있으며, 워크플로우 엔진은 액션 노드와 컨트롤 노드의 정보를 해석하여 관련 태스크를 하둡 클러스터에서 실행합니다. 주요 태스크로는 하이브, 피그, 스쿱 등이 있으며, 이러한 액션은 최종적으로 하둡의 맵리듀스 프로그램을 기반으로 작동합니다. 우지 서버는 실행 중인 태스크의 라이프 사이클을 추적하면서 모니터링 정보를 제공합니다. 최근 하둡 2.x부터는 얀을 기반으로 다양한 애플리케이션을 실행할 수 있게 되었고, 이에 따라 우지에서도 다양한 태스크 액션들이 추가되고 있습니다.