Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
-
RHive와 빅 데이터 분석
넥스알
Agenda
1. RHive의 소개
RHive 란?
RHive 기능 & 사용법
Enterprise RHive
2. RHive의 운용 사례
CloudLog
CDR
2
3
Big Data 플랫폼의 데이터 처리 능력과 R의 데이터 분석 기능의 결합 필요성이 대두됨
R분석가를 RHive 탄생 배경 RHive의 소개
• 가장 대중적인 분석 도구인 R과 검증된 대용량 분산 DW 시스템인 Hive를 결합한 Big Data 고급분석 플랫폼
4
RHive의 소개 RHive의 정의
5
Big Data 분석 시장에서의 Advanced Big Data Analytic 솔루션으로서의 가치
R 언어 및 ANSI-SQL을 기반으로 하는 분산 처리
플랫폼
- 제공데이터 분석가들의 Learning Cost 최소화
R 언어 기반 분산 처리 프로그래밍 Framework을 제공
- 용량의 한계/처리 시간의 한계를 극복
분석가들이 직접 R Library를 분산 병렬화 Porting 가능
- 존재하는 라이브러리를 필요에 따라 직접 Porting이
가능
특징 Global 업체로부터의 Contact
업체 소재지 용도
월마트 미국 분석팀장의 분석기능 구현 요구
엑센츄어 미국 프로젝트에 RHive 사용 검토
facebook 미국 사내 분석팀의 분석 도구
MicroStrategy 미국 고객의 요구로 RHive 관심
Hortonworks 미국 사내 교육 과정에 RHive 사용
taobao.com 중국 제품 사용에 대한 문의
특장점 단점
Big Data 처리 가능 분산 병렬 처리 기능 확장의 용이성
데이터 분석 기능 약함
장점 단점
풍부한 분석 함수 Visualization 전세계 사용 1위 솔루션
대용량 분석 불가
장점
R-Hive Bridge R기반 Big Data 분석 Visualization
시장에서의 RHive RHive의 소개
6
R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교
RHive의 상세 소개 타 솔루션과의 비교
RHive RHIPE, RHadoop, Riccardo
R 기본 함수 제공 •분산화 모델로 이식된 R 기본 함수 제공
• 구현된 함수가 없음
• 사용자가 구현해야 함
SQL 지원 • ANSI SQL 기반의 HQL로 지원 • SQL 미 지원
Hadoop
Map/Reduce
• MapReduce Model을 추상화한 Framework 제공
• R 개발자가 이해하기 쉬운 구조
• MapReduce Model과 tightly-coupled 됨
• R 개발자가 MapReduce 모델을 이해해야만 개발 가능 (개발이 어려움)
분산처리
프로그래밍
• Map/Reduce에 대한 지식이 없이도 분산 모델의 프로그래밍이 가능함
• Hadoop 등의 분산 처리 시스템에 저장된 Big Data 기반으로 R 분산 처리를 구현함
7
통계계산 수행 성능의 비교
RHipe(0.65) RHadoop(1.0) RHive(0.0-5)
8m 3m 1m
Hadoop env : 1 name node, 2data node
12GB data
airline data(http://stat-computing.org/dataexpo/2009/ )
Flight arrival and departure details for all commercial
flights within the USA, from October 1987 to April
2008.
Test Algorithm
colMeans (column mean)
타 솔루션과의 비교 - 성능
Agenda
RHive 사용 1. 분석 방식
Basic Flow
2. 구조
3. 설치
4. 기능
Basic Statistic Functions
Big Apply Functions
RHive UDF
Hive&Hadoop Bridge
8
9
Basic Flow
HIVE or HADOOP (TB ~) R (GB)
BIG
DATA
Data Load from HIVE
10
구조
설치
11
R 클라이언트 노드(Working client) # HIVE 설치 # HADOOP 설정 복사 # HADOOP_HOME 환경변수 설정 # R 쉘 > install.packages(‘RHive’)
하둡 데이터 노드(Hadoop Cluster) #R 쉘 > install.packages(‘RServer’) #커멘드 라인 $ R CMD Rserver
12
Basic Statistic Functions
Function 기능
rhive.basic.by 특정 컬럼을 기준으로 group by를 수행
rhive.basic.cut 하나의 수치 데이터 Column을 구간 Column으로 변환
rhive.basic.merge 두 테이블을 공통되는 행을 기반으로 합쳐서 새로운 데이터 셋을
rhive.basic.mode 두 테이블을 공통되는 행을 기반으로 합쳐서 새로운 데이터 셋을
rhive.basic.range 특정 숫자 행의 최대값과 최소값을
rhive.basic.scale 평균0 그리고 분산이 1인 분포로 숫자형 데이터를 변환시켜주는
rhive.basic.t.test Welch의 t-test를 수행한다
rhive.basic.xtabs xtabs 산출
rhive.block.sample Block 레벨의 Random Simple Sampling수행
13
Basic Statistic Functions
> library(RHive) > rhive.connect() > rhive.write.table(iris) > rhive.basic.mode(‘iris’, ‘sepallength’) sepallength freq 1 5 10
14
Big Apply Functions
Function 기능
Rhive.napply R의 napply 동일하며 빅데이터 처리
Rhive.sapply R의 sapply 동일하며 빅데이터 처리
rhive.mapapply 하이브 테이블을 R데이터 객체로 만든다
rhive.mrapply 하이브 테이블의 데이터 정의를 조회 한다
rhive.reduceapply 하이브 테이블의 크기를 구한다
15
Big Apply Functions
> rhive.napply('iris', function(column1) { column1 * 10}, 'sepallength') [1] "iris_napply1323970435_table"
16
Hive UDF Functions
rowname murder assault urbanpop rape 1 Alabama 13.2 236 58 21.2 2 Alaska 10.0 263 48 44.5 3 Arizona 8.1 294 80 31.0 4 Arkansas 8.8 190 50 19.5 . .
assault 컬럼의 최대값 ->
Select max(assault ) from USArrests
도시별 선택된 범죄 발생 수의 합은? ->
Select ? from USArrests
17
Hive UDF Functions
> sumCrimes <- function(column1, column2, column3) { column1 + column2 + column3 } > rhive.assign("sumCrimes", sumCrimes) > rhive.export("sumCrimes") > > rhive.query("SELECT rowname, R('sumCrimes', murder, assault, rape) FROM usarrests")
18
Hive UDF Functions
rowname crimes 1 Alabama 270.4 2 Alaska 317.5 3 Arizona 333.1 4 Arkansas 218.3 5 California 325.6 6 Colorado 250.6 7 Connecticut 124.4 8 Delaware 254.2 . . . .
rowname murder assault urbanpop rape 1 Alabama 13.2 236 58 21.2 2 Alaska 10.0 263 48 44.5 3 Arizona 8.1 294 80 31.0 4 Arkansas 8.8 190 50 19.5 . .
19
Extension Hive Functions
Function 내용
rhive.list.tables Hive 데이블 목록 조회
rhive.write.table R 데이터 객체를 Hive 테이블로 만든다
rhive.load.table Hive 테이블을 R데이터 객체로 만든다
rhive.desc.table Hive 테이블의 데이터 정의를 조회 한다
rhive.size.table Hive 테이블의 크기를 구한다
rhive.drop.table Hive 테이블을 삭제 한다
rhive.query Hive 쿼리 실행 시킨다
rhive.big.query Hive 쿼리 실행 결과를 Hive에 저장
20
Big Apply Functions
> rhive.query('select assert from usarrests') rowname murder assault urbanpop rape
1 Alabama 13.2 236 58 21.2 2 Alaska 10.0 263 48 44.5 . . .
> tmp_table <- rhive.load.table(usarrests) > tmp_table rowname murder assault urbanpop rape
1 Alabama 13.2 236 58 21.2 2 Alaska 10.0 263 48 44.5 . . .
21
Bridge to Hadoop
• rhive.hdfs.cat
• rhive.hdfs.chgrp
• rhive.hdfs.chmod
• rhive.hdfs.close
• rhive.hdfs.connect
• rhive.hdfs.du
• rhive.hdfs.exists
• rhive.hdfs.get
• rhive.hdfs.info
• rhive.hdfs.ls
• rhive.hdfs.mkdirs
• rhive.hdfs.put
• rhive.hdfs.rename
• rhive.hdfs.rm
• rhive.hdfs.tail
• rhive.load
• rhive.save
ENTERPRISE RHIVE의 확장 2. Enterprise RHive의 확장
22
• RHive의 상용 버전으로 RHive의 기본 기능 외에 각종 편의 도구 및 분산화된 분석 알고리즘 패키지를 제공함
• KMeans, Sampling, Scatter Plot, Simple Linear Regression 등 분산화 된 분석 알고리즘 제공(알고리즘 셋 추가 확장 중)
23
알고리즘 셋
Clustering
K-means
Prediction
Multi-variate linear regression
Classification tree
Sampling
random, stratified, cluster, quota
Modeling
model parameter tuning
feature selection
RHive의 확장 Enterprise RHive
• RHive 및 보고서 Action을 기술할 수 있는 웹기반 Workflow 관리 기능 제공
24
RHive의 확장 Enterprise RHive
• 시스템 모니터링/관제/작업 관리/설정 관리 등의 기능을 제공하는 웹기반 통합 관리 콘솔 기능 제공
25
RHive의 확장 Enterprise RHive
RHIVE(ENTERPRISE RHIVE)의 운용 사례
3. RHive의 운용 사례
26
CDR log 분석 RHive의 분석 사례
통신 CDR 로그를 분석하여 통화품질 최적화를 위한 Insight 제공
27
고객 Segment
Spatial Statistics을 이용한 통화품질 지표의 공간 인식
품질 이상 기지국의 조기 검출
Google Map Mash-Up
마케팅 관점의 고객 Segments의 공간 인식
RHive의 K-means Clustering 알고리즘 적용
Google Map Mash-Up
고객 무선통화 발신 이상 징후
개인의 통화 패턴으로부터 이상 Traffic 도출함
RHive Anomaly Detection 알고리즘을 이용 이상
통화 패턴 검출
통화품질 이상 징후
Cloud log 분석 RHive의 분석 사례
일자/시간대/IP별 Netflow 집계데이터
일자/시간대/Account/IP별 Virtual Machine 집계데이터
일자/시간대/Account별 Disk Volume 집계데이터
IP별 Netflow 집계데이터
Account/IP별 Virtual Machine 집계데이터
Account별 Disk Volume 집계데이터
Account별 통합 데이터
scale된 통합 데이터
Clustering 결과 데이터
군집특성도
Cluster별 Netflow 현황
Cluster별 Netflow 현황
Cluster별 Disk Volume 현황
Cluster별 VM 현황
Cluster VM 현황
정기 보고서
)
Cloud 시스템에서 생성되는 각종 시스템로그를 분석하여 시스템 운영의 최적화에 Insight 제공
28
RHIVE (Aggregate)
R(Plotting) RHIVE (Clustering)
R(Plotting)
클라우드 로그 분석 시스템