30
- RHive와 빅 데이터 분석 넥스알

RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

-

RHive와 빅 데이터 분석

넥스알

Page 2: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

Agenda

1. RHive의 소개

RHive 란?

RHive 기능 & 사용법

Enterprise RHive

2. RHive의 운용 사례

CloudLog

CDR

2

Page 3: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

3

Big Data 플랫폼의 데이터 처리 능력과 R의 데이터 분석 기능의 결합 필요성이 대두됨

R분석가를 RHive 탄생 배경 RHive의 소개

Page 4: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

• 가장 대중적인 분석 도구인 R과 검증된 대용량 분산 DW 시스템인 Hive를 결합한 Big Data 고급분석 플랫폼

4

RHive의 소개 RHive의 정의

Page 5: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 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의 소개

Page 6: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 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 분산 처리를 구현함

Page 7: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

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)

타 솔루션과의 비교 - 성능

Page 8: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

Agenda

RHive 사용 1. 분석 방식

Basic Flow

2. 구조

3. 설치

4. 기능

Basic Statistic Functions

Big Apply Functions

RHive UDF

Hive&Hadoop Bridge

8

Page 9: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

9

Basic Flow

HIVE or HADOOP (TB ~) R (GB)

BIG

DATA

Data Load from HIVE

Page 10: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

10

구조

Page 11: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

설치

11

R 클라이언트 노드(Working client) # HIVE 설치 # HADOOP 설정 복사 # HADOOP_HOME 환경변수 설정 # R 쉘 > install.packages(‘RHive’)

하둡 데이터 노드(Hadoop Cluster) #R 쉘 > install.packages(‘RServer’) #커멘드 라인 $ R CMD Rserver

Page 12: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

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수행

Page 13: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

13

Basic Statistic Functions

> library(RHive) > rhive.connect() > rhive.write.table(iris) > rhive.basic.mode(‘iris’, ‘sepallength’) sepallength freq 1 5 10

Page 14: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

14

Big Apply Functions

Function 기능

Rhive.napply R의 napply 동일하며 빅데이터 처리

Rhive.sapply R의 sapply 동일하며 빅데이터 처리

rhive.mapapply 하이브 테이블을 R데이터 객체로 만든다

rhive.mrapply 하이브 테이블의 데이터 정의를 조회 한다

rhive.reduceapply 하이브 테이블의 크기를 구한다

Page 15: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

15

Big Apply Functions

> rhive.napply('iris', function(column1) { column1 * 10}, 'sepallength') [1] "iris_napply1323970435_table"

Page 16: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

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

Page 17: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

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")

Page 18: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

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 . .

Page 19: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

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에 저장

Page 20: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

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 . . .

Page 21: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

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

Page 22: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

ENTERPRISE RHIVE의 확장 2. Enterprise RHive의 확장

22

Page 23: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

• 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

Page 24: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

• RHive 및 보고서 Action을 기술할 수 있는 웹기반 Workflow 관리 기능 제공

24

RHive의 확장 Enterprise RHive

Page 25: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

• 시스템 모니터링/관제/작업 관리/설정 관리 등의 기능을 제공하는 웹기반 통합 관리 콘솔 기능 제공

25

RHive의 확장 Enterprise RHive

Page 26: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

RHIVE(ENTERPRISE RHIVE)의 운용 사례

3. RHive의 운용 사례

26

Page 27: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

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 알고리즘을 이용 이상

통화 패턴 검출

통화품질 이상 징후

Page 28: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

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)

Page 29: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

클라우드 로그 분석 시스템

Page 30: RHive와 빅 데이터 분석 - NexR · 2018-06-12 · 6 R을 활용한 Big Data 분석 시스템: RHIPE, RHadoop, Riccardo과의 비교 타 솔루션과의 비교 RHive의 상세

30

Contact: [email protected]

github (https://github.com/nexr/RHive)