SlideShare une entreprise Scribd logo
1  sur  25
© 2013 Gruter. All rights reserved.
Tajo와 SQL on Hadoop
2013. 08. 29
최현식 책임 연구원
© 2013 Gruter. All rights reserved.
Index
• Hadoop & MapReduce
• SQL-on-Hadoop Systems
• Tajo 소개
• Tajo 설계 동기 및 목표
• Tajo 아키텍쳐
• Tajo JIT & Vectorized Query Engine
• Tajo 로드맵
• 벤치마크
© 2013 Gruter. All rights reserved.
Hadoop과 MapReduce
• 유연성
– 다양한 데이터 포맷 지원 (구조적, 비구조적 데이터, 텍스트)
– 범용 프로그래밍 언어를 이용하여 다양한 알고리즘 적용 가능
• 확장성
– 노드 증가에 따른 선형적인 (성능, 용량) 확장 가능
• 비용
– 다수의 범용 서버 클러스터에서 동작하도록 설계
– 노드 증가를 통한 용량 증설 및 처리 성능 향상 비용이 저렴
© 2013 Gruter. All rights reserved.
MapReduce의 동작 방식
map k v k v k v k v
Sorted key-value pairs
map k v k v k v k v
Sorted key-value pairs
map k v k v
Sorted key-value pairs
map k v k v k v
Sorted key-value pairs
input
map
function sort
k v
k v
k v
k v
k v
k v
k v v v v
k v v
reduce
k v
k v
k v
k v
k v
k v
k v v v
k v v
reduce
hash partition sort and merge
reduce
function
v
© 2013 Gruter. All rights reserved.
MapReduce의 한계
• Map과 Reduce 간 셔플의 한계
– merge sort->hashing->merge sort
• Job 간의 데이터 교환 오버헤드
• 관계형 데이터에 부적합
• 고정된 data flow
Job 1 Job 2 Job 3
write readwrite read
HDFS HDFS
© 2013 Gruter. All rights reserved.
기존 MapReduce 기반 SQL 처리 시스템
• Hive (<=0.11)
– HiveQL 을 다수의 MapReduce 작업으로 변환하여 동작
– SQL 표준 미지원 (비슷하나 많은 부분 상이 및 미지원)
– 높은 지연 시간
• 각 MapReduce Job 별 5~15초에 달하는 시동 시간
– 낮은 노드 당 처리 성능
• Tuple 단위 처리 모델 (Tuple-at-a-time 방식)
– Shuffle로 야기되는 큰 오버헤드
• 중간 데이터 materialization
• Pull 방식이 야기하는 Random Access
=> 대용량 데이터 배치처리만 가능, 처리 시 비효율적인 부분 많음
© 2013 Gruter. All rights reserved.
SQL-on-Hadoop
• Hadoop 기반의 차세대 분석 엔진들을 지칭
• 공통적 특징
– SQL 표준 지원
• 기존 시스템과 통합 또는 대체 용이
– 높은 처리 성능 (high throughput)
• MapReduce의 한계를 극복하는 분산 처리 프레임워크
• CPU와 메모리를 보다 잘 활용하는 처리 방식
– 낮은 반응 시간 (low latency)
• 100 msec ~
© 2013 Gruter. All rights reserved.
Why SQL-on-Hadoop?
• Needs의 변화
– ‘투자대비 저렴한 가격으로 대용량 데이터 처리에 만족’
-> ‘보다 높은 처리 성능 및 빠른 반응’ 요구
– 많은 사용자가 Ad-hoc 질의를 위해 DB 병행 사용에 불만
• 대화형 질의 (Interactive Query)
– 발견은 ‘질의 -> 결과 분석과 사고 -> 질의’의 순환
• 시스템의 빠른 반응 속도가 데이터 분석의 생산성
– 빠른 의사 결정 가능
• 성능 보장 및 사람에 의한 오류 방지
– MapReduce 프로그래밍
• 개발자 역량에 의존적
• 버그 가능성 높음
– 질의 언어
• 적절한 성능은 시스템이 보장
• 버그 가능성 낮음
© 2013 Gruter. All rights reserved.
다양한 SQL-on-Hadoop 시스템
• Cloudera Impala
– Low-latency 질의 처리에 특화되어 설계
– Block-at-a-time 방식 엔진
– 고성능을 위해 C++
– SIMD과 LLVM 이용하여 String 처리, virtual 함수 호출 빈도수 격감
– 인메모리 처리에 특화되어 대용량 데이터, 결과 값이 큰 데이터 처리에 한계
– 소스는 Open, 참여는 Closed
• Hortonworks Stringer
– Hive 기반 시스템
– Vectorized 엔진 도입으로 기존 튜플 단위 처리 엔진 대체 작업 중
– Tez (incubating)를 개발하여 MapReduce 프레임워크 대체 계획
– Tez가 아직 초기 개발 상태(early stage)에 있음
© 2013 Gruter. All rights reserved.
Apache Tajo
• Tajo
– Hadoop 기반 Data Warehouse 시스템
– HDFS 및 다양한 소스의 대용량 데이터에 대한 ETL, 집계 연산, 조인, 정렬 제공
• 호환성
– 거의 완벽한 SQL 호환
– JDBC 지원, ODBC 지원 (추후 계획)
– UDF 지원
• 고성능 (high throughput) 및 낮은 반응 시간 (low latency)
– 유연하고 효율적인 분산 처리 엔진
– 비용 기반 최적화 엔진 (cost-based optimization)
– JIT Query Compilation 및 Vectorized 질의 엔진
• 오픈소스
– Apache Software Foundation의 인큐베이팅 프로젝트
– 완전한 커뮤니티 기반 프로젝트 (열린 참여)
© 2013 Gruter. All rights reserved.
Tajo 설계 동기 (1/2)
• 기존 시스템에게 얻은 교훈 및 중요 우선 순위
1. 잘못된 질의 계획 및 최적화
• 잘못된 질의 계획은 수 분 짜리 질의를 수 시간이 걸리게 할 수 있음
2. 분산 처리 프레임워크
• 테스크 시작 오버헤드 (노드 당 낮은 처리량)
– MR은 각 테스크 당 수십 msec ~ 1초 이상
– 반면 64MB 데이터 기준 task 처리 속도는 약 1초
• 중간 데이터 전달 부하가 분산 처리의 주 병목 지점
– Pull 방식이 유발하는 Random I/O로 인해 네트워크 대역폭 활용도 낮음
• 고정된 Map -> Reduce 단계
• Hash Shuffle로 인해 적은 최적화 기회
3. 워커 레벨의 데이터 처리 엔진
• 낮은 처리 성능
• CPU-friendly 하지 않은 구현
• Scale-up 대한 고려 거의 없음
© 2013 Gruter. All rights reserved.
Tajo 설계 동기 (2/2)
• 하드웨어의 발전
– Many Cores
• 단일 범용 서버가 8-24 코어 보유
– 더욱 빨라지는 스토리지
• 향후 3-5년내 SSD 서버 스토리지 대중화 예상
• SSD의 순차 읽기 속도 500MB/s ~ 1500MB/s
• CPU Core 당 처리 속도 2GB/s
• Disk I/O -> CPU 병목 예상
– SIMD의 발전
• 최신 CPU들은 String 비교나 Hashing을 위한 명령어 까지 제공
• 단일 명령어 처리 데이터 증가 (향후 256bit -> 1024bit)
(SIMD vs. scalar operations)
© 2013 Gruter. All rights reserved.
Tajo 설계 및 구현 목표
• 확장성
• 성능
• 내고장성
• 고도의 질의 계획 최적화
• 유연한 분산 처리 플랫폼
• Scale-up 환경에서 하드웨어 자원 활용 극대화
© 2013 Gruter. All rights reserved.
Tajo 아키텍쳐
• 마스터-워커 모델 + 질의 별 Query Master 동작
– Protocol Buffer + Netty, Boost ASIO 기반의 RPC 기반
• Tajo Master
– 클라이언트 및 어플레케이션 요청 처리
– 카탈로그 서버
• 테이블 스키마, 물리적인 정보, 각종 통계
• JDBC 이용 외부 RDBMS를 저장소로 사용
– Query 파서, 플래너, 최적화, 클러스터 자원 관리, Query Master 관리
• Query Master (각 질의 별 동작)
– 분산 실행 계획 생성
– Execution Block (질의 실행 단계) 제어
– 테스크 스케쥴링
• Tajo Worker
– 스토리지 매니저, 로컬 질의 엔진
– C++ 구현
© 2013 Gruter. All rights reserved.
TajoWorker
TajoWorker
TajoWorker
Tajo 아키텍쳐
TajoWorker
TajoClient
TajoCli
TajoMaster
TajoMaster
Client
Protocol
Service
(Netty)
Query
Master
Client
Protocol
Service
(netty)
Logical
Planner
Catalog
Server
YARN
ResourceManager
YARN
NodeManager
QueryMaster
TajoWorker
Physical
Planner
Storage
Manager
Query
Engine
File
Reader/
Writer
DataNode
Catalog
Database
HCatalog
Interface
Hive Meta
Database
Hive
Catalog
YARN
RM
Proxy
Tajo
ResourceManager
Resource
Manager
(자체)
QueryMaster
Manager
ProtocolService
(Netty)
Global
Planner
QueryMaster
Manager
Query
Master
Protocol
Service
(netty)
Vectorized
Engine
© 2013 Gruter. All rights reserved.
Tajo의 질의 계획 및 최적화 엔진
• 비용 기반 최적화 (Cost-based optimization)
– 시스템이 최적의 조인 순서를 탐색 및 선택
– 사용자에게 의존하지 않음
• 확장 가능한 Rewrite Rule 엔진
– 기존 상용 DB 수준의 다양한 Rewrite rule로 확장 가능
• 적응형 최적화 (Progressive query reoptimization)
– 질의 실행 시간에 통계 정보를 기반으로 질의의 남은 부분 최적화
– 나쁜 질의 계획 회피 가능
© 2013 Gruter. All rights reserved.
Tajo의 데이터 셔플 (Shuffle) 메커니즘
• 데이터 Shuffle 방법
– Hash
• 노드들에게 할당된 hash key 값에 만족하도록 데이터 재분배
– Range
• 노드들에게 할당된 값 범위에 만족 하도록 데이터 재분배
• 데이터 전송 방법
– Pull
• 중간 데이터를 저장하고 다른 워커가 끌어가는 방식
• 데이터에 비해 자원이 충분치 않아 단계별로 데이터를 처리할 때
– Push
• 중간 데이터의 디스크 저장 없이 데이터를 다른 워커에게 전송
• 자원이 충분하고 여러 데이터 처리를 동시에 파이프라이닝 가능할 때 사용
© 2013 Gruter. All rights reserved.
An Example of Distributed Execution Plan
(A join-groupby-sort query plan) (A distributed query execution plan)
select col1, sum(col2) as total, avg(col3) as
averagefrom r1, r2 where r1.col1 = r2.col2 group by
col1 order by average;
© 2013 Gruter. All rights reserved.
JIT 및 Vectorized Engine
• C++ 구현
– 직접 로우 레벨 최적화 가능
– SIMD 명령
– 메모리 효율적인 관리 (No Garbage Collection, low memory footprint)
• Vectorized Engine
– 데이터를 CPU Cache 크기에 맞춘 Vector들로 유지
– Vector 단위 (원시 타입 배열) 데이터 처리
– 각 vector 마다 작은 loop를 반복하여 데이터 처리
– CPU Pipelining 향상, SIMD 적용 가능, 높은 CPU Cache 적중률
• JIT using LLVM
– 실행 시간 (runtime)에 필요한 처리 primitive 생성 및 캐쉬
• 각 머신 별 최적화된 코드 생성 가능
• 인터프리트 오버헤드 제거
• Branch misprediction 감소 -> CPU Pipelining 기회 증대
– 실행 시간에 Physical Execution 코드 생성
© 2013 Gruter. All rights reserved.
Vectorized Query Processing
vector chunk 0
vector chunk 1
vector chunk 2
Table columns
map_hash
Projection
GroupBy
sel_>
sel_<
multiaggr_sum
groupids
Filter
filter
primitives
customer quantity shipdate extprice tax
aggregation
primitives
multiaggr_max
© 2013 Gruter. All rights reserved.
SCAN
FILTER
GROUP
BY
const float vec_num = 1000;
float l_extended_price[vec_num], l_discount[vec_num]
long l_shipdate[vec_num], l_quantity[vec_num]
int selected[vec_num];
date date1 = date(“1994-01-01”);
date date2 = date(“1995-01-01”);
float val1 = 0.05; val2= 0.07;
double output1[vec_num];
double output2[vec_num];
do {
fetch_vectors(l_extended_price, l_discount, l_shipdate,
l_quantity);
bool_geq_date_col_date_val(l_ship_date, date1, selected)
;
bool_lt_date_col_date_val(l_ship_date, date2, selected);
bool_geq_float_col_float_val(l_discount, 0.05, selected)
;
bool_lt_float_col_float_val(l_discount, 0.07, selected);
bool_gt_float_col_float_val(l_quantity, 24, selected);
map_mul_float_col_float_col(output1, l_discount,
l_quantity, selected);
agg_sum_float(output2, output1, selected);
write_outputbuffer(output2);
} while (hasNext());Output An example of runtime generated physical execution plan
JIT Query Compilation
© 2013 Gruter. All rights reserved.
Tajo 로드맵
• 2013. 10월 초: Apache Tajo 0.8 Release
– 자체 분산 처리 엔진
– 기존 Java 기반 처리 엔진
– SQL 표준 거의 지원
– HiveQL 모드 지원
– Query Rewrite Rule 엔진 탑재 + 기초적인 Rewrite Rule
• 2014. 1월: Apache Tajo 1.0 Release
– 다수 Rewrite Rule 탑재
– Cost-based Optimization
– Adaptive Query Reoptimization
– JIT Query Compilation & Vectorized Engine
22
© 2013 Gruter. All rights reserved.
벤치 마크 테스트
• Tajo 자바 엔진 버전, Impala 0.7, Hive 0.10
• 2013. 01 벤치 마크
• Experiment Environments
– 100GB TPC-H Data Set
• http://www.tpc.org/tpch/spec/tpch2.16.0.pdf
• 5 Cluster Nodes
• Intel i5
• 16GB Memory
• 2TB HDD x 5
• 1G Ethernet
• Hadoop 2.0.2-alpha
23
© 2013 Gruter. All rights reserved.
벤치 마크 테스트
Q1 Q3 Q6
TAJO 112 sec 330 sec 121 sec
Impala 89 sec 414 sec 141 sec
Hive 827 sec 346 sec
24
TPC-H Q1, Q3, Q6 벤치마크 비교표
GRUTER: YOUR PARTNER
IN THE BIG DATA REVOLUTION
Phone +82-70-8129-2950
Fax +82-70-8129-2952
E-mail contact@gruter.com
Web www.gruter.com
© 2013 Gruter. All rights reserved.
Gruter, Inc.
5F Sehwa Office Building 889-70 Daechi-dong, Gangnam-gu, Seoul, South Korea 135-839

Contenu connexe

Tendances

Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Matthew (정재화)
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for HadoopSeungYong Baek
 
Hadoop 제주대
Hadoop 제주대Hadoop 제주대
Hadoop 제주대DaeHeon Oh
 
Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Channy Yun
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개Gruter
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Gruter
 
Io t에서 big data를 통합하는 통합 빅데이터 플랫폼 flamingo_클라우다인_김병곤 대표이사
Io t에서 big data를 통합하는 통합 빅데이터 플랫폼 flamingo_클라우다인_김병곤 대표이사Io t에서 big data를 통합하는 통합 빅데이터 플랫폼 flamingo_클라우다인_김병곤 대표이사
Io t에서 big data를 통합하는 통합 빅데이터 플랫폼 flamingo_클라우다인_김병곤 대표이사uEngine Solutions
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 온라인 컨텐츠 서비스를 위한 빅데이터 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 온라인 컨텐츠 서비스를 위한 빅데이터 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 온라인 컨텐츠 서비스를 위한 빅데이터 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 온라인 컨텐츠 서비스를 위한 빅데이터 구축 사례Gruter
 
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimDeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimGruter
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료Teddy Choi
 
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안치완 박
 
Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313Sanghee Lee
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoMatthew (정재화)
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache TajoGruter
 
빅데이터, big data
빅데이터, big data빅데이터, big data
빅데이터, big dataH K Yoon
 
5일차.map reduce 활용
5일차.map reduce 활용5일차.map reduce 활용
5일차.map reduce 활용주영 송
 
Gruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigDataGruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigDataGruter
 
about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yesEunsil Yoon
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Gruter
 

Tendances (20)

Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
 
Hadoop 제주대
Hadoop 제주대Hadoop 제주대
Hadoop 제주대
 
Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013
 
Io t에서 big data를 통합하는 통합 빅데이터 플랫폼 flamingo_클라우다인_김병곤 대표이사
Io t에서 big data를 통합하는 통합 빅데이터 플랫폼 flamingo_클라우다인_김병곤 대표이사Io t에서 big data를 통합하는 통합 빅데이터 플랫폼 flamingo_클라우다인_김병곤 대표이사
Io t에서 big data를 통합하는 통합 빅데이터 플랫폼 flamingo_클라우다인_김병곤 대표이사
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 온라인 컨텐츠 서비스를 위한 빅데이터 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 온라인 컨텐츠 서비스를 위한 빅데이터 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 온라인 컨텐츠 서비스를 위한 빅데이터 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 온라인 컨텐츠 서비스를 위한 빅데이터 구축 사례
 
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimDeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료
 
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
 
Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313Gpdb best practices v a01 20150313
Gpdb best practices v a01 20150313
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
 
빅데이터, big data
빅데이터, big data빅데이터, big data
빅데이터, big data
 
5일차.map reduce 활용
5일차.map reduce 활용5일차.map reduce 활용
5일차.map reduce 활용
 
Gruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigDataGruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigData
 
HDFS Overview
HDFS OverviewHDFS Overview
HDFS Overview
 
about hadoop yes
about hadoop yesabout hadoop yes
about hadoop yes
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)
 

En vedette

Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부Jinho Yoo
 
Spark 소개 1부
Spark 소개 1부Spark 소개 1부
Spark 소개 1부Jinho Yoo
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106SangHoon Lee
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습동현 강
 
Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Donam Kim
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습동현 강
 

En vedette (6)

Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부
 
Spark 소개 1부
Spark 소개 1부Spark 소개 1부
Spark 소개 1부
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습
 
Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습
 

Similaire à GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop

SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013Hyunsik Choi
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoGruter
 
Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Gruter
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)Channy Yun
 
Lablupconf session7 People don't know what they want until LABLUP show it to ...
Lablupconf session7 People don't know what they want until LABLUP show it to ...Lablupconf session7 People don't know what they want until LABLUP show it to ...
Lablupconf session7 People don't know what they want until LABLUP show it to ...Lablup Inc.
 
The nosql echossytem
The nosql echossytemThe nosql echossytem
The nosql echossytem종석 박
 
SQream DB, GPU-accelerated data warehouse
SQream DB, GPU-accelerated data warehouseSQream DB, GPU-accelerated data warehouse
SQream DB, GPU-accelerated data warehouseNAVER Engineering
 
Cloudera Impala 1.0
Cloudera Impala 1.0Cloudera Impala 1.0
Cloudera Impala 1.0Minwoo Kim
 
Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Keeyong Han
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Steve Min
 
Glusterfs 소개 v1.0_난공불락세미나
Glusterfs 소개 v1.0_난공불락세미나Glusterfs 소개 v1.0_난공불락세미나
Glusterfs 소개 v1.0_난공불락세미나sprdd
 
확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안 확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안 IMQA
 
data platform on kubernetes
data platform on kubernetesdata platform on kubernetes
data platform on kubernetes창언 정
 
Cloud DW technology trends and considerations for enterprises to apply snowflake
Cloud DW technology trends and considerations for enterprises to apply snowflakeCloud DW technology trends and considerations for enterprises to apply snowflake
Cloud DW technology trends and considerations for enterprises to apply snowflakeSANG WON PARK
 
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기ksdc2019
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna현철 박
 
google dinos
google dinosgoogle dinos
google dinosjuhyun
 
sparklyr을 활용한 R 분산 처리
sparklyr을 활용한 R 분산 처리sparklyr을 활용한 R 분산 처리
sparklyr을 활용한 R 분산 처리Sang-bae Lim
 
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개Gruter
 

Similaire à GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop (20)

SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
 
Lablupconf session7 People don't know what they want until LABLUP show it to ...
Lablupconf session7 People don't know what they want until LABLUP show it to ...Lablupconf session7 People don't know what they want until LABLUP show it to ...
Lablupconf session7 People don't know what they want until LABLUP show it to ...
 
The nosql echossytem
The nosql echossytemThe nosql echossytem
The nosql echossytem
 
SQream DB, GPU-accelerated data warehouse
SQream DB, GPU-accelerated data warehouseSQream DB, GPU-accelerated data warehouse
SQream DB, GPU-accelerated data warehouse
 
Cloudera Impala 1.0
Cloudera Impala 1.0Cloudera Impala 1.0
Cloudera Impala 1.0
 
Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)
 
Glusterfs 소개 v1.0_난공불락세미나
Glusterfs 소개 v1.0_난공불락세미나Glusterfs 소개 v1.0_난공불락세미나
Glusterfs 소개 v1.0_난공불락세미나
 
확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안 확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안
 
Hadoop administration
Hadoop administrationHadoop administration
Hadoop administration
 
data platform on kubernetes
data platform on kubernetesdata platform on kubernetes
data platform on kubernetes
 
Cloud DW technology trends and considerations for enterprises to apply snowflake
Cloud DW technology trends and considerations for enterprises to apply snowflakeCloud DW technology trends and considerations for enterprises to apply snowflake
Cloud DW technology trends and considerations for enterprises to apply snowflake
 
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
초초초 (초고속 초저지연 초연결) 5G IoT 플랫폼 개발 이야기
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna
 
google dinos
google dinosgoogle dinos
google dinos
 
sparklyr을 활용한 R 분산 처리
sparklyr을 활용한 R 분산 처리sparklyr을 활용한 R 분산 처리
sparklyr을 활용한 R 분산 처리
 
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
 

Plus de Gruter

MelOn 빅데이터 플랫폼과 Tajo 이야기
MelOn 빅데이터 플랫폼과 Tajo 이야기MelOn 빅데이터 플랫폼과 Tajo 이야기
MelOn 빅데이터 플랫폼과 Tajo 이야기Gruter
 
Introduction to Apache Tajo: Future of Data Warehouse
Introduction to Apache Tajo: Future of Data WarehouseIntroduction to Apache Tajo: Future of Data Warehouse
Introduction to Apache Tajo: Future of Data WarehouseGruter
 
Introduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big DataIntroduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big DataGruter
 
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWSGruter
 
What's New Tajo 0.10 and Its Beyond
What's New Tajo 0.10 and Its BeyondWhat's New Tajo 0.10 and Its Beyond
What's New Tajo 0.10 and Its BeyondGruter
 
Efficient In­‐situ Processing of Various Storage Types on Apache Tajo
Efficient In­‐situ Processing of Various Storage Types on Apache TajoEfficient In­‐situ Processing of Various Storage Types on Apache Tajo
Efficient In­‐situ Processing of Various Storage Types on Apache TajoGruter
 
Data analysis with Tajo
Data analysis with TajoData analysis with Tajo
Data analysis with TajoGruter
 
Gruter TECHDAY 2014 Realtime Processing in Telco
Gruter TECHDAY 2014 Realtime Processing in TelcoGruter TECHDAY 2014 Realtime Processing in Telco
Gruter TECHDAY 2014 Realtime Processing in TelcoGruter
 
Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)
Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)
Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)Gruter
 
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)Gruter
 
Gruter_TECHDAY_2014_01_SearchEngine (in Korean)
Gruter_TECHDAY_2014_01_SearchEngine (in Korean)Gruter_TECHDAY_2014_01_SearchEngine (in Korean)
Gruter_TECHDAY_2014_01_SearchEngine (in Korean)Gruter
 
Apache Tajo - BWC 2014
Apache Tajo - BWC 2014Apache Tajo - BWC 2014
Apache Tajo - BWC 2014Gruter
 
Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Gruter
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014Gruter
 
Big Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on Hadoop
Big Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on HadoopBig Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on Hadoop
Big Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on HadoopGruter
 
Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...
Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...
Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...Gruter
 
Cloumon sw제품설명회 발표자료
Cloumon sw제품설명회 발표자료Cloumon sw제품설명회 발표자료
Cloumon sw제품설명회 발표자료Gruter
 
Tajo case study bay area hug 20131105
Tajo case study bay area hug 20131105Tajo case study bay area hug 20131105
Tajo case study bay area hug 20131105Gruter
 
Apache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special Event
Apache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special EventApache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special Event
Apache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special EventGruter
 

Plus de Gruter (19)

MelOn 빅데이터 플랫폼과 Tajo 이야기
MelOn 빅데이터 플랫폼과 Tajo 이야기MelOn 빅데이터 플랫폼과 Tajo 이야기
MelOn 빅데이터 플랫폼과 Tajo 이야기
 
Introduction to Apache Tajo: Future of Data Warehouse
Introduction to Apache Tajo: Future of Data WarehouseIntroduction to Apache Tajo: Future of Data Warehouse
Introduction to Apache Tajo: Future of Data Warehouse
 
Introduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big DataIntroduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big Data
 
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
 
What's New Tajo 0.10 and Its Beyond
What's New Tajo 0.10 and Its BeyondWhat's New Tajo 0.10 and Its Beyond
What's New Tajo 0.10 and Its Beyond
 
Efficient In­‐situ Processing of Various Storage Types on Apache Tajo
Efficient In­‐situ Processing of Various Storage Types on Apache TajoEfficient In­‐situ Processing of Various Storage Types on Apache Tajo
Efficient In­‐situ Processing of Various Storage Types on Apache Tajo
 
Data analysis with Tajo
Data analysis with TajoData analysis with Tajo
Data analysis with Tajo
 
Gruter TECHDAY 2014 Realtime Processing in Telco
Gruter TECHDAY 2014 Realtime Processing in TelcoGruter TECHDAY 2014 Realtime Processing in Telco
Gruter TECHDAY 2014 Realtime Processing in Telco
 
Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)
Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)
Gruter_TECHDAY_2014_04_TajoCloudHandsOn (in Korean)
 
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
 
Gruter_TECHDAY_2014_01_SearchEngine (in Korean)
Gruter_TECHDAY_2014_01_SearchEngine (in Korean)Gruter_TECHDAY_2014_01_SearchEngine (in Korean)
Gruter_TECHDAY_2014_01_SearchEngine (in Korean)
 
Apache Tajo - BWC 2014
Apache Tajo - BWC 2014Apache Tajo - BWC 2014
Apache Tajo - BWC 2014
 
Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
 
Big Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on Hadoop
Big Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on HadoopBig Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on Hadoop
Big Data Camp LA 2014 - Apache Tajo: A Big Data Warehouse System on Hadoop
 
Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...
Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...
Hadoop Summit 2014: Query Optimization and JIT-based Vectorized Execution in ...
 
Cloumon sw제품설명회 발표자료
Cloumon sw제품설명회 발표자료Cloumon sw제품설명회 발표자료
Cloumon sw제품설명회 발표자료
 
Tajo case study bay area hug 20131105
Tajo case study bay area hug 20131105Tajo case study bay area hug 20131105
Tajo case study bay area hug 20131105
 
Apache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special Event
Apache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special EventApache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special Event
Apache Tajo - Bay Area HUG Nov. 2013 LinkedIn Special Event
 

GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop

  • 1. © 2013 Gruter. All rights reserved. Tajo와 SQL on Hadoop 2013. 08. 29 최현식 책임 연구원
  • 2. © 2013 Gruter. All rights reserved. Index • Hadoop & MapReduce • SQL-on-Hadoop Systems • Tajo 소개 • Tajo 설계 동기 및 목표 • Tajo 아키텍쳐 • Tajo JIT & Vectorized Query Engine • Tajo 로드맵 • 벤치마크
  • 3. © 2013 Gruter. All rights reserved. Hadoop과 MapReduce • 유연성 – 다양한 데이터 포맷 지원 (구조적, 비구조적 데이터, 텍스트) – 범용 프로그래밍 언어를 이용하여 다양한 알고리즘 적용 가능 • 확장성 – 노드 증가에 따른 선형적인 (성능, 용량) 확장 가능 • 비용 – 다수의 범용 서버 클러스터에서 동작하도록 설계 – 노드 증가를 통한 용량 증설 및 처리 성능 향상 비용이 저렴
  • 4. © 2013 Gruter. All rights reserved. MapReduce의 동작 방식 map k v k v k v k v Sorted key-value pairs map k v k v k v k v Sorted key-value pairs map k v k v Sorted key-value pairs map k v k v k v Sorted key-value pairs input map function sort k v k v k v k v k v k v k v v v v k v v reduce k v k v k v k v k v k v k v v v k v v reduce hash partition sort and merge reduce function v
  • 5. © 2013 Gruter. All rights reserved. MapReduce의 한계 • Map과 Reduce 간 셔플의 한계 – merge sort->hashing->merge sort • Job 간의 데이터 교환 오버헤드 • 관계형 데이터에 부적합 • 고정된 data flow Job 1 Job 2 Job 3 write readwrite read HDFS HDFS
  • 6. © 2013 Gruter. All rights reserved. 기존 MapReduce 기반 SQL 처리 시스템 • Hive (<=0.11) – HiveQL 을 다수의 MapReduce 작업으로 변환하여 동작 – SQL 표준 미지원 (비슷하나 많은 부분 상이 및 미지원) – 높은 지연 시간 • 각 MapReduce Job 별 5~15초에 달하는 시동 시간 – 낮은 노드 당 처리 성능 • Tuple 단위 처리 모델 (Tuple-at-a-time 방식) – Shuffle로 야기되는 큰 오버헤드 • 중간 데이터 materialization • Pull 방식이 야기하는 Random Access => 대용량 데이터 배치처리만 가능, 처리 시 비효율적인 부분 많음
  • 7. © 2013 Gruter. All rights reserved. SQL-on-Hadoop • Hadoop 기반의 차세대 분석 엔진들을 지칭 • 공통적 특징 – SQL 표준 지원 • 기존 시스템과 통합 또는 대체 용이 – 높은 처리 성능 (high throughput) • MapReduce의 한계를 극복하는 분산 처리 프레임워크 • CPU와 메모리를 보다 잘 활용하는 처리 방식 – 낮은 반응 시간 (low latency) • 100 msec ~
  • 8. © 2013 Gruter. All rights reserved. Why SQL-on-Hadoop? • Needs의 변화 – ‘투자대비 저렴한 가격으로 대용량 데이터 처리에 만족’ -> ‘보다 높은 처리 성능 및 빠른 반응’ 요구 – 많은 사용자가 Ad-hoc 질의를 위해 DB 병행 사용에 불만 • 대화형 질의 (Interactive Query) – 발견은 ‘질의 -> 결과 분석과 사고 -> 질의’의 순환 • 시스템의 빠른 반응 속도가 데이터 분석의 생산성 – 빠른 의사 결정 가능 • 성능 보장 및 사람에 의한 오류 방지 – MapReduce 프로그래밍 • 개발자 역량에 의존적 • 버그 가능성 높음 – 질의 언어 • 적절한 성능은 시스템이 보장 • 버그 가능성 낮음
  • 9. © 2013 Gruter. All rights reserved. 다양한 SQL-on-Hadoop 시스템 • Cloudera Impala – Low-latency 질의 처리에 특화되어 설계 – Block-at-a-time 방식 엔진 – 고성능을 위해 C++ – SIMD과 LLVM 이용하여 String 처리, virtual 함수 호출 빈도수 격감 – 인메모리 처리에 특화되어 대용량 데이터, 결과 값이 큰 데이터 처리에 한계 – 소스는 Open, 참여는 Closed • Hortonworks Stringer – Hive 기반 시스템 – Vectorized 엔진 도입으로 기존 튜플 단위 처리 엔진 대체 작업 중 – Tez (incubating)를 개발하여 MapReduce 프레임워크 대체 계획 – Tez가 아직 초기 개발 상태(early stage)에 있음
  • 10. © 2013 Gruter. All rights reserved. Apache Tajo • Tajo – Hadoop 기반 Data Warehouse 시스템 – HDFS 및 다양한 소스의 대용량 데이터에 대한 ETL, 집계 연산, 조인, 정렬 제공 • 호환성 – 거의 완벽한 SQL 호환 – JDBC 지원, ODBC 지원 (추후 계획) – UDF 지원 • 고성능 (high throughput) 및 낮은 반응 시간 (low latency) – 유연하고 효율적인 분산 처리 엔진 – 비용 기반 최적화 엔진 (cost-based optimization) – JIT Query Compilation 및 Vectorized 질의 엔진 • 오픈소스 – Apache Software Foundation의 인큐베이팅 프로젝트 – 완전한 커뮤니티 기반 프로젝트 (열린 참여)
  • 11. © 2013 Gruter. All rights reserved. Tajo 설계 동기 (1/2) • 기존 시스템에게 얻은 교훈 및 중요 우선 순위 1. 잘못된 질의 계획 및 최적화 • 잘못된 질의 계획은 수 분 짜리 질의를 수 시간이 걸리게 할 수 있음 2. 분산 처리 프레임워크 • 테스크 시작 오버헤드 (노드 당 낮은 처리량) – MR은 각 테스크 당 수십 msec ~ 1초 이상 – 반면 64MB 데이터 기준 task 처리 속도는 약 1초 • 중간 데이터 전달 부하가 분산 처리의 주 병목 지점 – Pull 방식이 유발하는 Random I/O로 인해 네트워크 대역폭 활용도 낮음 • 고정된 Map -> Reduce 단계 • Hash Shuffle로 인해 적은 최적화 기회 3. 워커 레벨의 데이터 처리 엔진 • 낮은 처리 성능 • CPU-friendly 하지 않은 구현 • Scale-up 대한 고려 거의 없음
  • 12. © 2013 Gruter. All rights reserved. Tajo 설계 동기 (2/2) • 하드웨어의 발전 – Many Cores • 단일 범용 서버가 8-24 코어 보유 – 더욱 빨라지는 스토리지 • 향후 3-5년내 SSD 서버 스토리지 대중화 예상 • SSD의 순차 읽기 속도 500MB/s ~ 1500MB/s • CPU Core 당 처리 속도 2GB/s • Disk I/O -> CPU 병목 예상 – SIMD의 발전 • 최신 CPU들은 String 비교나 Hashing을 위한 명령어 까지 제공 • 단일 명령어 처리 데이터 증가 (향후 256bit -> 1024bit) (SIMD vs. scalar operations)
  • 13. © 2013 Gruter. All rights reserved. Tajo 설계 및 구현 목표 • 확장성 • 성능 • 내고장성 • 고도의 질의 계획 최적화 • 유연한 분산 처리 플랫폼 • Scale-up 환경에서 하드웨어 자원 활용 극대화
  • 14. © 2013 Gruter. All rights reserved. Tajo 아키텍쳐 • 마스터-워커 모델 + 질의 별 Query Master 동작 – Protocol Buffer + Netty, Boost ASIO 기반의 RPC 기반 • Tajo Master – 클라이언트 및 어플레케이션 요청 처리 – 카탈로그 서버 • 테이블 스키마, 물리적인 정보, 각종 통계 • JDBC 이용 외부 RDBMS를 저장소로 사용 – Query 파서, 플래너, 최적화, 클러스터 자원 관리, Query Master 관리 • Query Master (각 질의 별 동작) – 분산 실행 계획 생성 – Execution Block (질의 실행 단계) 제어 – 테스크 스케쥴링 • Tajo Worker – 스토리지 매니저, 로컬 질의 엔진 – C++ 구현
  • 15. © 2013 Gruter. All rights reserved. TajoWorker TajoWorker TajoWorker Tajo 아키텍쳐 TajoWorker TajoClient TajoCli TajoMaster TajoMaster Client Protocol Service (Netty) Query Master Client Protocol Service (netty) Logical Planner Catalog Server YARN ResourceManager YARN NodeManager QueryMaster TajoWorker Physical Planner Storage Manager Query Engine File Reader/ Writer DataNode Catalog Database HCatalog Interface Hive Meta Database Hive Catalog YARN RM Proxy Tajo ResourceManager Resource Manager (자체) QueryMaster Manager ProtocolService (Netty) Global Planner QueryMaster Manager Query Master Protocol Service (netty) Vectorized Engine
  • 16. © 2013 Gruter. All rights reserved. Tajo의 질의 계획 및 최적화 엔진 • 비용 기반 최적화 (Cost-based optimization) – 시스템이 최적의 조인 순서를 탐색 및 선택 – 사용자에게 의존하지 않음 • 확장 가능한 Rewrite Rule 엔진 – 기존 상용 DB 수준의 다양한 Rewrite rule로 확장 가능 • 적응형 최적화 (Progressive query reoptimization) – 질의 실행 시간에 통계 정보를 기반으로 질의의 남은 부분 최적화 – 나쁜 질의 계획 회피 가능
  • 17. © 2013 Gruter. All rights reserved. Tajo의 데이터 셔플 (Shuffle) 메커니즘 • 데이터 Shuffle 방법 – Hash • 노드들에게 할당된 hash key 값에 만족하도록 데이터 재분배 – Range • 노드들에게 할당된 값 범위에 만족 하도록 데이터 재분배 • 데이터 전송 방법 – Pull • 중간 데이터를 저장하고 다른 워커가 끌어가는 방식 • 데이터에 비해 자원이 충분치 않아 단계별로 데이터를 처리할 때 – Push • 중간 데이터의 디스크 저장 없이 데이터를 다른 워커에게 전송 • 자원이 충분하고 여러 데이터 처리를 동시에 파이프라이닝 가능할 때 사용
  • 18. © 2013 Gruter. All rights reserved. An Example of Distributed Execution Plan (A join-groupby-sort query plan) (A distributed query execution plan) select col1, sum(col2) as total, avg(col3) as averagefrom r1, r2 where r1.col1 = r2.col2 group by col1 order by average;
  • 19. © 2013 Gruter. All rights reserved. JIT 및 Vectorized Engine • C++ 구현 – 직접 로우 레벨 최적화 가능 – SIMD 명령 – 메모리 효율적인 관리 (No Garbage Collection, low memory footprint) • Vectorized Engine – 데이터를 CPU Cache 크기에 맞춘 Vector들로 유지 – Vector 단위 (원시 타입 배열) 데이터 처리 – 각 vector 마다 작은 loop를 반복하여 데이터 처리 – CPU Pipelining 향상, SIMD 적용 가능, 높은 CPU Cache 적중률 • JIT using LLVM – 실행 시간 (runtime)에 필요한 처리 primitive 생성 및 캐쉬 • 각 머신 별 최적화된 코드 생성 가능 • 인터프리트 오버헤드 제거 • Branch misprediction 감소 -> CPU Pipelining 기회 증대 – 실행 시간에 Physical Execution 코드 생성
  • 20. © 2013 Gruter. All rights reserved. Vectorized Query Processing vector chunk 0 vector chunk 1 vector chunk 2 Table columns map_hash Projection GroupBy sel_> sel_< multiaggr_sum groupids Filter filter primitives customer quantity shipdate extprice tax aggregation primitives multiaggr_max
  • 21. © 2013 Gruter. All rights reserved. SCAN FILTER GROUP BY const float vec_num = 1000; float l_extended_price[vec_num], l_discount[vec_num] long l_shipdate[vec_num], l_quantity[vec_num] int selected[vec_num]; date date1 = date(“1994-01-01”); date date2 = date(“1995-01-01”); float val1 = 0.05; val2= 0.07; double output1[vec_num]; double output2[vec_num]; do { fetch_vectors(l_extended_price, l_discount, l_shipdate, l_quantity); bool_geq_date_col_date_val(l_ship_date, date1, selected) ; bool_lt_date_col_date_val(l_ship_date, date2, selected); bool_geq_float_col_float_val(l_discount, 0.05, selected) ; bool_lt_float_col_float_val(l_discount, 0.07, selected); bool_gt_float_col_float_val(l_quantity, 24, selected); map_mul_float_col_float_col(output1, l_discount, l_quantity, selected); agg_sum_float(output2, output1, selected); write_outputbuffer(output2); } while (hasNext());Output An example of runtime generated physical execution plan JIT Query Compilation
  • 22. © 2013 Gruter. All rights reserved. Tajo 로드맵 • 2013. 10월 초: Apache Tajo 0.8 Release – 자체 분산 처리 엔진 – 기존 Java 기반 처리 엔진 – SQL 표준 거의 지원 – HiveQL 모드 지원 – Query Rewrite Rule 엔진 탑재 + 기초적인 Rewrite Rule • 2014. 1월: Apache Tajo 1.0 Release – 다수 Rewrite Rule 탑재 – Cost-based Optimization – Adaptive Query Reoptimization – JIT Query Compilation & Vectorized Engine 22
  • 23. © 2013 Gruter. All rights reserved. 벤치 마크 테스트 • Tajo 자바 엔진 버전, Impala 0.7, Hive 0.10 • 2013. 01 벤치 마크 • Experiment Environments – 100GB TPC-H Data Set • http://www.tpc.org/tpch/spec/tpch2.16.0.pdf • 5 Cluster Nodes • Intel i5 • 16GB Memory • 2TB HDD x 5 • 1G Ethernet • Hadoop 2.0.2-alpha 23
  • 24. © 2013 Gruter. All rights reserved. 벤치 마크 테스트 Q1 Q3 Q6 TAJO 112 sec 330 sec 121 sec Impala 89 sec 414 sec 141 sec Hive 827 sec 346 sec 24 TPC-H Q1, Q3, Q6 벤치마크 비교표
  • 25. GRUTER: YOUR PARTNER IN THE BIG DATA REVOLUTION Phone +82-70-8129-2950 Fax +82-70-8129-2952 E-mail contact@gruter.com Web www.gruter.com © 2013 Gruter. All rights reserved. Gruter, Inc. 5F Sehwa Office Building 889-70 Daechi-dong, Gangnam-gu, Seoul, South Korea 135-839