빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터...

27
Apache Zeppelin 빅데이터분석을 위한 스파크2 프로그래밍 [email protected] + SparkR 을 활용한 데이터 분석

Post on 13-Apr-2017

1.587 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

Apache Zeppelin

빅데이터분석을 위한 스파크2 프로그래밍

[email protected]

+SparkR을 활용한

데이터 분석

Page 2: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

을 활용한

데이터 분석

R

Page 3: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

을 활용한

데이터 분석

R■의학,제조,교육,금융등

다양한산업분야에서사용

■머신러닝,데이터마이닝,

데이터시각화를위한

그래프처리분야등에서널리사용

■무료소프트웨어이지만

오랜기간사용되면서

그기능과안정성을충분히검증

■패키지기반의확장성을제공

R데이터 마이닝

제조

머신러닝

의학

통계 분석

교육

오픈소스

History

Graphics

금융

Page 4: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

을 활용한

데이터 분석

R

신뢰성과기능성,

확장성과 경제성을 갖춘

훌륭한 데이터 분석도구 !!!

신뢰성

기능성

확장성

경제성

R

Page 5: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

을 활용한

데이터 분석

R

?하지만, R에도 약점은 있으니...

■대용량데이터처리에취약하다

■R병렬처리패키지만으로는

아무래도부족한…

신뢰성과기능성,

확장성과 경제성을 갖춘

훌륭한 데이터 분석도구 !!!R ** TB

Page 6: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

을 활용한

데이터 분석

R + Hadoop

?

■하둡을사용해보자!

■대용량데이터를HDFS와같은분산저장소에올려놓고

■그결과로생성된파일을가지고R을이용한데이터분석을수행

■하둡의맵리듀스를비롯한다양한빅데이터처리도구를

이용하여대용량데이터에대한전처리를수행한뒤

R ** TBHDFS

FilesFilesFilesFiles

MapReduce

+

Hive, Pig, HBase …

Page 7: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

+ Spark

?

■그결과로생성된파일을가지고R을이용한데이터분석을수행

■그런데뭐가달라졌지?

■이번엔스파크(스파크R)를활용해보자!

R ** TB

HDFS

FilesFilesFilesFiles

Spark

을 활용한

데이터 분석

R

Page 8: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

+ Spark을 활용한

데이터 분석

R

R+

SparkR package

** TB

HDFS

스파크R을 사용하게 되면

■대용량데이터처리결과를“파일”로

만들고그“파일”을다시R로분석하는

단계를거칠필요가없다.

■R스크립트로스파크에직접연동한다!

Page 9: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

R+

SparkR package

** TB

HDFS

R에서직접스파크클러스터에작업을제출하고…그결과를R데이터프레임형태로직접전달받는다!

+ Spark을 활용한

데이터 분석

스파크 클러스터

R

ServerServerServerServerServerServerServer

Page 10: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

■클러스터기반대용량분산데이터처리

■다양한기능제공

머신러닝

RDD

분산 데이터 처리

분산SQL

Dataset

DataFrame

Graph 알고리즘

스파크R

Text, JSon, Parquet...

Spark Streaming

Spark

Spark

?

Page 11: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

Ex)SparkR쉘에서실행한경우!

1.Java 설치

2.Spark 설치

3.R 설치

4.SparkR 패키지 로드

5.스파크R(Spark + R)을 이용한

데이터 처리

Spark + R(쉘에서작업)

Page 12: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

Ex)RStudio에서실행한경우!

Spark + R(RStudio에서작업)

1.Java 설치

2.Spark 설치

3.R 설치

4.Rstudio 설치

5.SparkR 패키지 로드

6.스파크R(Spark+R)을

이용한데이터처리

Page 13: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

https://zeppelin.apache.org/

Zeppelin(웹브라우저로작업)

1. 데이터 분석을 위한 웹 노트(코드 에디터) 제공

2. NF랩스(한국)에서 개발되어 아파치 톱 레벨 프로젝트 등극

3. 인터프리터(Interpreter)를 통해 스파크, Hbase, 쉘, R, 카산드라,

하이브등 다양한 외부 시스템 및 라이브러리 연동

4.결과 데이터에 대한 시각화 기능 제공

5.Dynamic Form 생성 기능 제공

Page 14: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

Zeppelin 설치(빌드)

1.제플린 빌드

■스파크 최신 버전(2.1.0)을 사용하기 위해 제플린 SNAPSHOT 버전(0.7.0) 빌드 필요

■노드(Node.js), 자바, 스칼라(2.11), 메이븐 등 빌드를 위한 사전 라이브러리 설치(https://goo.

gl/WSsHj8, Build requirements 참조)

■제플린 코드 Clone

■ git clone https://github.com/apache/zeppelin.git

■빌드

■ ./dev/change_scala_version.sh 2.11

■ mvn clean package -Pbuild-distr -DskipTests -Pspark-2.1 -Phadoop-2.6

-Ppyspark -Psparkr -Pscala-2.11

Page 15: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

Zeppelin 설치(빌드)

1.빌드가 끝난 후

2. zeppelin-distribution/target/

zeppelin-0.8.0-SNAPSHOT.

tar.gz 생성 됨

3. 위 파일 압축을 원하는 위치로

이동 후 압축 해제

(ex:~/Apps/zeppelin-0.8.0-SNAPSHOT)

Page 16: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

1.자바 설치 (Java7+ 사용 가능 하지만 Java8 권장)

2.자바 설치 후 JAVA_HOME 환경 변수 설정

3.스칼라 설치 (2.11.x 버전)

4.(파이썬을 사용할 경우) 파이썬 설치 (2.6+ 또는 3.4+ 사용 가능 하지만 3.4+ 권장)

5.(하둡 파일 시스템을 사용할 경우) 하둡 설치 (Hadoop 2.7+ 권장)

6.스파크 설치

■스파크 다운로드 : https://goo.gl/b6Lb1w (2.1.0 버전, 사용할 하둡 버전에 맞춰 다운로드)

■다운로드 된 파일을 압축 해제 후 압축 해제 한 위치를 SPARK_HOME 으로 설정

■스파크 클러스터 설정(https://goo.gl/FOlth1)

Spark 설치

Page 17: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

1.스파크 설치 확인

■${SPARK_HOME}/bin/spark-shell 실행

■프롬프트가 나오면 아래 코드 입력(아래 예제에서 <spark_home>은 스파크가 설치 경로를 의미)

scala> sc.textFile("file:///<spark_home>/README.md").flatMap(_.split(" ")).countByValue

(결과) scala.collection.Map[String,Long] = Map(site, -> 1, Please -> 4, GraphX -> 1…

■정상적으로 설치되면 위와 같은 결과가 콘솔에 출력 됨.

Spark 설치

Page 18: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

1.R 설치

■https://www.r-project.org

■OS에 맞게 설치

■R 설치 후 R 그래픽 패키지 설치

■install.packages('devtools', repos = 'http://cran.us.r-project.org')

■install.packages('knitr', repos = 'http://cran.us.r-project.org')install.

packages('ggplot2', repos = 'http://cran.us.r-project.org')

■install.packages(c('devtools','mplot', 'googleVis'), repos = 'http://cran.us.r-project.

org'); require(devtools); install_github('ramnathv/rCharts')

R 설치

Page 19: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

1.SPARK_HOME 설정

2.zeppelin-site.xml 생성(파일만 생성해 두면 됨)

■<zeppelin_home>/conf/zeppelin-env.sh(최초에 zeppelin-env.sh.template 파일을 복사하여

생성)

■export SPARK_HOME=${SPARK_HOME}

■export SPARK_APP_NAME=Zeppelin-Spark

■cd <zeppelin_home>/conf

■cp zeppelin-site.xml.template zeppelin-site.xml

Zeppelin 설정

Page 20: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

Zeppelin 구동

1.제플린 데몬 구동

2.서버 실행 후

브라우저를 통해

http://<서버IP>:8080

으로 접속

■<zeppelin_home>/bin/zeppelin-daemon.sh start ( start 대신 “stop” 이나 “restart” 가능)

Page 21: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

Zeppelin 노트생성

1.상단의 Notebook -> “+ Create new note”를 누르고 아래 화면에서 노트북

이름 입력

Page 22: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

Zeppelin 노트실행

1.노트에 println("Hello, World!!") 라고 입력 후 실행 (실행은 READY 문자옆의

화살표 모양 아이콘)

■간단한예제실행을통해…

■내부적으로스파크잡실행+스파크세션및스파크실행환경구성

실행결과

코드 실행버튼

Page 23: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

Zeppelin 노트실행

1.R 그래프 그려보기

Page 24: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

Zeppelin 노트실행

1.R 데이터프레임과

스파크 데이터프레임간의

상호 변환을 통한 데이터 처리

Page 25: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

Zeppelin 노트실행

1.머신러닝 – 코드 입력

Page 26: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

Zeppelin 노트실행

1.머신러닝–실행결과

Page 27: 빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지

감사합니다.