
데이터
Impala
하둡 에코시스템에 속해 있는 대규모 병렬 처리 SQL 쿼리 엔진으로써 HDFS에 저장돼 있는 데이터를 SQL을 이용해 실시간으로 분석할 수 있도록 해준다.
StackOverflow 질문 수: 2079
Github Stars : ★ 1200
사용 기업

카카오페이

카카오엔터테인먼트

비바리퍼블리카

SK플래닛

SK텔레콤

카카오엔터테인먼트Tech
SK텔레콤
Open Source 기반의 Big Data Platform 구축
안녕하세요.제가 이번에 공유드릴 내용은 Open Source 기반의 OLAP workeloads에 최적화된 분산 Storage인 Apache Kudu와분산 Computing 환경을 제공하는 MPP(Massively Parallel Processing) SQL Query engine인 Apache Impala 환경 구성입니다.그밖에 각 서비스의 Monitoring 관련한 Open Source와 간략한 구성 정보를 공유 해드리고자 합니다.소개될 Architecture는 모두 Open Source 기반의 Solution으로만 구성을 하였으므로, 이와 같은 Big Data Platform 구축을 고려하고 계신다면 참고가 되실 수도 있을 것 같습니다.※ 보안에 민감한 이미지 내용 및 텍스트는 모자이크/임의변경 처리 했습니다.Apache Kuduhttps://kudu.apache.orgCloudera에서 C++ 기반으로 개발되었으며, Apache 재단에서 관리하는 Open SourceOLTP와 OLAP 특징을 결합한 HTAP(Hybrid Transactional/Analytic Processing) 구조 Realtime high performance Writes Concurrent SQL ReadsRDBMS와 유사한 구조화된 데이터 모델(Column/Primary Key Design/Partitioning 등)Apache Impala와 최적의 성능 조합을 이루며, Apache NiFi 및 Apache Spark와의 통합 지원Master 및 Tablet 서버의 Raft Consensus 알고리즘을 사용한 HA 지원 (Tablet Replica별 Tablet 서버 각각의 Leader/Follower 구조)장애 감지 및 복구 : 복제본에 장애가 발생한 경우, 사용 가능한 다른 Tablet 서버로 자동 복제 (Leader 복제본 장애시에도)서비스 및 Cluster 유지 관리가 쉬움Apache Impalahttps://impala.apache.orgCloudera에서 C++, Java 기반으로 개발되었으며, Apache 재단에서 관리하는 Open SourceHDFS 및 Kudu Storage 환경의 대용량 Data를 처리할 수 있는 고성능 SQL Query engine in-Memory 기반의 Data 처리 SELECT, Joins, and Aggregate Functions등을 포함한 SQL (HiveQL) syntax 지원 JDBC/ODBC driver 제공Impala Daemon UI에서 제공하는 상세한 Query Plan/Profile 및 모니터링 기능 제공서비스 및 Cluster 유지 관리가 쉬움Cluster 환경 정보OS Version 및 H/W SpecOS : Linux(RHEL 8.4)CPU : 48 CoreDisk(SSD) : 30 TBMemory : 384 GBComponent VersionApache Kudu : 1.16.0Apache Impala : 4.2.0Apache Hadoop(Standalone) : 3.1.1Apache Hiv
elasticsearch
grafana
impala
kudu
라인
어디에나 있지만 어디에도 없는 LINE 게임의 분석 환경
안녕하세요. LINE에서 데이터 엔지니어로 일하고 있는 이명훈입니다. 빅데이터와 데이터 분석이라는 단어가 유행한 지도 꽤 오래 되었고, 이제 어떤 서비스든지 데이터 분석은 선택이 아닌 필수가 되었습니다. 모두 열심히 데이터를 수집하고 그 속에서 의미 있는 정보를 찾기 위해 노력합니다. 유의미한 정보를 찾기 위해서는 분석 환경이 필요한데요. 오늘은 LINE에서 게임의 분석 환경 구축과 관련하여 어떤 고민을 했는지 공유해 보고자 합니다. LINE 게임의 분석 환경 분석 환경은 좁게는 Tableau와 엑셀, R과 같은 툴에서부터 넓게는 데이터 설계, 수집, 처리, 분석까지 모두 포함합니다. 이 글에서는 넓은 범위의 분석 환경에 대해 다룹니다. 분석 환경을 구축할 때는 구글이나 아마존처럼 상용화된 환경을 사용하는 경우도 있고, 오픈 소스를 사용해서 직접 구축하는 경우도 있습니다. 규모와 목적에 따라 조금씩 다르겠지만 보통 Hadoop ecosystem, NoSQL, Kafka, Elastic, R 등을 이용해 구축합니다. 다음 그림은 LINE의 분석 환경을 간단하게 표현한 것입니다. LINE 게임도 오픈 소스를 사용해 분석 환경을 구축했습니다. SDK에서 전송한 데이터를 콜렉터로 수집해서 Log 파이프라인을 거쳐 Hadoop 클러스터에 저장한 후, Hive와 Impala를 통해 데이터를 추출하고 R, Tableau, 자체 BI(Business intelligence) 도구를 사용해 지표와 분석 서비스를 제공하고 있습니다. LINE 게임 분석 환경의 차별점을 7가지 키워드로 정리하여 차근차근 설명해 보겠습니다. Catalog 첫 번째 키워드는 데이터에 대한 카탈로그입니다. 카탈로그라는 용어가 낯설게 느껴지신다면 데이터 명세서나 설계서라고 이해하셔도 좋습니다. 데이터 카탈로그가 분석 환경과 무슨 관계인지 궁금하실 수도 있겠지만, 넓은 범위로 봤을 때 데이터를 분석하기 위해서는 먼저 데이터를 수집해야 하고, 이를 위해서는 데이터를 정의하는 설계 작업부터 필요합니다. LINE 게임의 분석 환경에서 데이터 카탈로그는 2가지 내용을 담고 있습니다. Log Design: 어떤 데이터를 어느 시점에 전송하는가DW(Data warehouse) Design: 수집된 데이터가 어떤 형태로 가공, 저장되는가 데이터 카탈로그는 데이터 로깅부터 수집, 처리, 저장, 지표 제공 등 모든 곳에 참조되는 매우 중요한 정보입니다. 하지만 게임에서는 사실 핵심 기능이 아니라 상대적으로 소홀하게 관리되는 편이고, 데이터를 어떻게 남겨야하는지에 대해서만 가이드되는 편입니다. LINE 게임에서는 모든 데이터 카탈로그를 분석 팀에서 직접 관리하고 있습니다. 수집, 저장 환경만 제공하는 것이 아닌 분석 서비스도 함께 제공하기 때문인데요. 데이터 카탈로그는 템플릿으로 만들어서 크게는 서비스별로, 작게는 데이터 종류별로 관리합니다. 예를 들어 게임에서 재화의 획득과 사용에 대한 재화 템플릿을 만들고, 이를 게임별로 재화 종류와 변동 사유를 커스터마이징해서 사용합니다. 템플릿을 사용하면
fluentd
hive
impala
네이버
Kudu를 이용한 빅데이터 다차원 분석 시스템 개발
네이버의 콘텐츠 통계 서비스는 네이버의 콘텐츠를 사용자가 얼마나 소비했는지에 대한 통계를 콘텐츠 생산자에게 제공합니다. 예를 들어 블로그 관리자가 볼 수 있는 통계 메뉴의 방문자수 통계와 포스트 조회수 통계 등이 콘텐츠 통계 서비스가 블로그 콘텐츠 생산자에게 제공하는 정보입니다. 콘텐츠 통계 서비스를 제공하려면 빅데이터 분석이 필요합니다. 네이버는 Kudu를 백엔드 데이터베이스로 사용하는 빅데이터 다차원 분석 시스템을 개발해 2017년 5월부터 2018년 3월까지 운영하며 콘텐츠 통계 서비스 등에 사용했습니다. Kudu는 Cloudera에서 개발한 칼럼 기반 스토리지(columnar storage)입니다. 다른 많은 칼럼 기반 스토리지와 달리 primary key를 제공하기 때문에 밀리초(ms) 수준의 랜덤 액세스가 가능합니다. OLAP(online analytical processing) 성격의 질의와 OLTP(online transaction processing) 성격의 질의를 모두 지원하기 때문에 Kudu를 사용하면 빅데이터 분석 시스템의 구조를 단순하게 만들 수 있습니다. 이 글에서는 콘텐츠 통계 서비스에서 활용할 수 있는 빅데이터 다차원 분석 시스템을 Kudu를 사용해 개발한 경험을 소개합니다. 빅데이터 분석 시스템에서는 로그 수집, 저장, 집계, 질의 처리, 시각화, API 등이 필요하지만 이 글에서는 주로 저장과 질의 처리 기능을 중심으로 설명하겠습니다. 콘텐츠 통계 서비스와 KUDU 네이버 블로그의 방문자수 통계와 포스트 조회수 통계와 같이 네이버의 콘텐츠를 사용자가 얼마나 소비했는지에 대한 통계를 콘텐츠 생산자에게 제공하는 콘텐츠 통계 서비스는 빅데이터를 처리하기 위해 다양한 플랫폼을 사용한다. 2017년 5월에는 빅데이터 플랫폼인 Kudu를 사용한 빅데이터 다차원 분석 시스템을 개발해 콘텐츠 통계 서비스에 적용했다. Cloudera에서 개발한 칼럼 기반 스토리지인 Kudu는 Parquet의 파일 포맷처럼 OLAP 성격의 질의를 빠르게 처리한다. 또한 HBase가 row key를 제공하는 것과 비슷하게 primary key를 제공하기 때문에 밀리초 수준의 랜덤 액세스가 가능하다. OLAP 성격의 질의와 OLTP 성격의 질의를 모두 지원하는 Kudu를 사용하면 빅데이터 분석 시스템의 구조를 단순하게 만들 수 있다. > Kudu를 사용하기 전의 콘텐츠 통계 서비스에 관한 더 자세한 내용은 DEVIEW 2016의 "네이버 콘텐츠 통계서비스 소개 및 구현 경험 > 공유" 세션의 발표 내용을 참고한다. > - 세션 발표 자료: [215]네이버콘텐츠통계서비스소개 > - 세션 발표 영상: 네이버 콘텐츠 통계서비스 소개 및 구현 경험 공유 KUDU의 특징 Kudu의 특징은 로그 수집, 저장, 집계, 질의 처리, 시각화, API 등의 측면에서 살펴볼 수 있지만, 이 글에서는 저장과 질의 처리 측면을 중심으로 살펴보겠다. Kudu에 관한 더 자세한 내용은 Kudu 웹 사이트와 "Kudu: Storage for Fast Analytics o
clickhouse
druid
elasticsearch
hadoop
hbase
impala
kudu
nodejs
spark
네이버
Hadoop에서의 실시간 SQL 질의: Impala
Impala는 HDFS에 저장돼 있는 데이터를 SQL을 이용해 실시간으로 분석할 수 있는 시스템입니다. MapReduce 프레임워크를 이용하지 않고 분산 질의 엔진을 이용해 분석하기 때문에 빠른 결과를 제공할 수 있습니다. 아직 베타 버전이고 구현되지 않은 중요한 기능들이 있지만 많은 주목을 받고 있는 시스템입니다. 이 글에서는 Impala의 구조와 기능을 알아보고 간략한 성능 테스트를 통해 실시간 대용량 처리에서 Impala가 보여주는 성능을 확인해 보겠습니다. HADOOP에서 실시간으로 결과 분석을 2006년 등장한 Hadoop으로 인해 대용량 데이터 분석 작업은 더 이상 소수의 몇몇 회사나 단체만이 할 수 있는 것이 아니게 되었다. Hadoop은 오픈소스여서 대용량 데이터 분석이 필요한 많은 곳에서 낮은 비용으로 쉽게 Hadoop을 사용할 수 있기 때문이다. 대용량 데이터 분석 작업이 보편적인 기술이 된 것이다. Hadoop의 핵심은 HDFS(Hadoop Distributed File System)와 MapReduce 프레임워크다. 분산 파일 시스템 형태로 용량을 확장할 수 있는 파일 시스템인 HDFS에 데이터를 저장하고, 이렇게 저장된 데이터를 바탕으로 MapReduce 연산을 실행해 원하는 데이터를 얻어낼 수 있다. 그러나 앉으면 눕고 싶은 것이 사람의 욕심인 만큼, Hadoop 사용자 그룹은 Hadoop의 기능/성능 제약을 극복하고 Hadoop을 더 발전시키려 했다. 불만은 MapReduce 프레임워크를 사용하는 것에 좀 더 집중되었다. MapReduce 프레임워크의 대표적인 단점은 두 가지다. * 사용하기에 불편한 점이 많다. * 처리가 느리다. MapReduce 프레임워크의 사용 편의성을 높이기 위해 2008년에 Pig나 Hive같은 플랫폼이 등장했다. Pig와 Hive 모두 Hadoop의 서브 프로젝트다(Hadoop은 여러 플랫폼의 생태계이기도 하다. Hadoop을 기반으로 하는 여러 제품들이 제작되고 있다). Pig와 Hive 모두 하이레벨 언어 형태라는 점에서는 같지만, Pig는 절차적인 형태임에 비해 Hive는 SQL과 유사한 선언적인 언어 형태다. Pig와 Hive의 등장으로 Hadoop 사용자들은 더 편하게 대용량 데이터 분석 작업을 수행할 수 있게 되었다. 하지만 Hive나 Pig는 데이터 조회 인터페이스에 관한 기술이라 대용량 데이터 분석 작업의 속도를 높이지는 않는다. Hive나 Pig 모두 내부적으로는 MapReduce 프레임워크를 사용한다. 그래서 등장한 것이 칼럼 기반 NoSQL인 HBase다. 키-값(Key-Value) 데이터에 대한 빠른 입출력이 가능한 HBase는 Hadoop기반의 시스템에서 실시간으로 데이터 처리가 가능한 환경을 비로소 제공했다. Hadoop 에코 시스템(eco-System)의 이러한 발전은 Google의 영향을 많이 받았다. HDFS 자체도 Google에서 발표한 GFS(Google File System) 논문을 바탕으로 구현된 것이고, HBase 또한 Google의 BigTa
hadoop
hbase
hive
impala
연관 기술 스택

Hadoop

Hive

Presto

Spark