SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Apache Zeppelin
빅데이터분석을 위한 스파크2 프로그래밍
wikibook@wikibook.co.kr
+SparkR을 활용한
데이터 분석
을 활용한
데이터 분석
R
을 활용한
데이터 분석
R
■	의학, 제조, 교육, 금융 등
	 다양한 산업 분야에서 사용
■	머신러닝, 데이터 마이닝,
	 데이터 시각화를 위한
	 그래프 처리 분야 등에서 널리 사용
■	무료 소프트웨어이지만
	 오랜 기간 사용되면서 	
	 그 기능과 안정성을 충분히 검증
■	패키지 기반의 확장성을 제공
R데이터 마이닝
제조
머신러닝
의학
통계 분석
교육
오픈소스
History
Graphics
금융
을 활용한
데이터 분석
R
신뢰성과 기능성,
확장성과 경제성을 갖춘
훌륭한 데이터 분석도구 !!!
신뢰성
기능성
확장성
경제성
R
을 활용한
데이터 분석
R
?
하지만, R에도 약점은 있으니...
■	대용량 데이터 처리에 취약하다
■	R 병렬 처리 패키지만으로는             
아무래도 부족한…
R ** TB
을 활용한
데이터 분석
R + Hadoop
?
■	하둡을 사용해 보자!
■	대용량 데이터를 HDFS와 같은 분산 저장소에 올려놓고  
■	그 결과로 생성된 파일을 가지고 R을 이용한 데이터 분석을 수행
■	하둡의 맵리듀스를 비롯한 다양한 빅데이터 처리 도구를
이용하여 대용량 데이터에 대한 전 처리를 수행한 뒤
R ** TB
HDFS
Files
Files
Files
Files
MapReduce
+
Hive, Pig, HBase …
+ Spark
?
■	그런데 뭐가 달라졌지?
■	이번엔 스파크(스파크R)를 활용해 보자!
R ** TB
HDFS
Files
Files
Files
Files
Spark
을 활용한
데이터 분석
R
+ Spark을 활용한
데이터 분석
R
R+
SparkR
package
** TB
HDFS
스파크R을 사용하게 되면
■	대용량 데이터 처리 결과를 “파일”로
만들고 그 “파일”을 다시 R로 분석하는
단계를 거칠 필요가 없다.
■	R 스크립트로 스파크에 직접 연동한다!
R+
SparkR
package
** TB
HDFS
R에서 직접 스파크 클러스터에 작업을 제출하고 … 그 결과를 R 데이터프레임 형태로 직접 전달받는다!
+ Spark을 활용한
데이터 분석
스파크 클러스터
R
Server
Server
Server
Server
Server
Server
Server
■	클러스터 기반 대용량 분산 데이터 처리
■	다양한 기능 제공
머신러닝
RDD
분산 데이터 처리
분산SQL
Dataset
DataFrame
Graph 알고리즘
스파크R
Text, JSon, Parquet...
Spark Streaming
Spark
Spark
?
Ex) SparkR 쉘에서 실행한 경우!
1. Java 설치
2. Spark 설치
3. R 설치
4. SparkR 패키지 로드
5. 스파크R(Spark + R)을 이용한
데이터 처리
Spark + R(쉘에서 작업)
Ex) RStudio에서 실행한 경우!
Spark + R(RStudio에서 작업)
1. Java 설치
2. Spark 설치
3. R 설치
4. Rstudio 설치
5. SparkR 패키지 로드
6. 스파크R(Spark + R)을                   
	 이용한 데이터 처리
https://zeppelin.apache.org/
Zeppelin(웹 브라우저로 작업)
1.	 데이터 분석을 위한 웹 노트(코드 에디터) 제공
2.	 NF랩스(한국)에서 개발되어 아파치 톱 레벨 프로젝트 등극
3.	 인터프리터(Interpreter)를 통해 스파크, Hbase, 쉘, R, 카산드라,
		 하이브등 다양한 외부 시스템 및 라이브러리 연동
4. 결과 데이터에 대한 시각화 기능 제공
5. Dynamic Form 생성 기능 제공
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
Zeppelin 설치(빌드)
1.	빌드가 끝난 후
2.	zeppelin-distribution/target/
	 zeppelin-0.8.0-SNAPSHOT.
	 tar.gz 생성 됨
3.	위 파일 압축을 원하는 위치로
	 이동 후 압축 해제
    (ex: ~/Apps/ zeppelin-0.8.0-SNAPSHOT)
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 설치
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 설치
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 설치
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 설정
Zeppelin 구동
1.	제플린 데몬 구동
2.	서버 실행 후
	 브라우저를 통해
	 http://서버IP:8080
	 으로 접속
■	zeppelin_home/bin/zeppelin-daemon.sh start ( start 대신 “stop” 이나 “restart” 가능)
Zeppelin 노트 생성
1.	상단의 Notebook - “+ Create new note”를 누르고 아래 화면에서 노트북
이름 입력
Zeppelin 노트 실행
1.	노트에 println(Hello, World!!) 라고 입력 후 실행 (실행은 READY 문자옆의
화살표 모양 아이콘)
■	간단한 예제 실행을 통해…
■내부적으로 스파크 잡 실행 + 스파크 세션 및 스파크 실행 환경 구성
실행결과
코드 실행버튼
Zeppelin 노트 실행
1.	R 그래프 그려보기
Zeppelin 노트 실행
1.	R 데이터프레임과
	 스파크 데이터프레임간의
	 상호 변환을 통한 데이터 처리
Zeppelin 노트 실행
1.	머신러닝 – 코드 입력
Zeppelin 노트 실행
1.	머신러닝 – 실행 결과
감사합니다.

Más contenido relacionado

La actualidad más candente

Spark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With SparkSpark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With SparkSangHoon Lee
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습동현 강
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna현철 박
 
Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리Jeong-gyu Kim
 
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축Juhong Park
 
Spark Day 2017@Seoul(Spark Bootcamp)
Spark Day 2017@Seoul(Spark Bootcamp)Spark Day 2017@Seoul(Spark Bootcamp)
Spark Day 2017@Seoul(Spark Bootcamp)Sang-bae Lim
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부Jinho Yoo
 
Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?KSLUG
 
learning spark - Chatper8. Tuning and Debugging
learning spark - Chatper8. Tuning and Debugginglearning spark - Chatper8. Tuning and Debugging
learning spark - Chatper8. Tuning and DebuggingMungyu Choi
 
스사모 테크톡 - Apache Flink 둘러보기
스사모 테크톡 - Apache Flink 둘러보기스사모 테크톡 - Apache Flink 둘러보기
스사모 테크톡 - Apache Flink 둘러보기SangWoo Kim
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 
PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기찬희 이
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampSang-bae Lim
 
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Hyoungjun Kim
 
스파크와 이클립스_연동하기
스파크와 이클립스_연동하기스파크와 이클립스_연동하기
스파크와 이클립스_연동하기Dohyung Park
 
Cloudera & Zookeeper
Cloudera & ZookeeperCloudera & Zookeeper
Cloudera & ZookeeperJunyoung Park
 
Zeppelin notebook 만들기
Zeppelin notebook 만들기Zeppelin notebook 만들기
Zeppelin notebook 만들기Soo-Kyung Choi
 
Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Teddy Choi
 

La actualidad más candente (20)

Spark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With SparkSpark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With Spark
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna
 
Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리
 
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
 
Spark Day 2017@Seoul(Spark Bootcamp)
Spark Day 2017@Seoul(Spark Bootcamp)Spark Day 2017@Seoul(Spark Bootcamp)
Spark Day 2017@Seoul(Spark Bootcamp)
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부
 
Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?
 
learning spark - Chatper8. Tuning and Debugging
learning spark - Chatper8. Tuning and Debugginglearning spark - Chatper8. Tuning and Debugging
learning spark - Chatper8. Tuning and Debugging
 
스사모 테크톡 - Apache Flink 둘러보기
스사모 테크톡 - Apache Flink 둘러보기스사모 테크톡 - Apache Flink 둘러보기
스사모 테크톡 - Apache Flink 둘러보기
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcamp
 
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
 
Cluster - spark
Cluster - sparkCluster - spark
Cluster - spark
 
스파크와 이클립스_연동하기
스파크와 이클립스_연동하기스파크와 이클립스_연동하기
스파크와 이클립스_연동하기
 
Cloudera & Zookeeper
Cloudera & ZookeeperCloudera & Zookeeper
Cloudera & Zookeeper
 
Zeppelin notebook 만들기
Zeppelin notebook 만들기Zeppelin notebook 만들기
Zeppelin notebook 만들기
 
Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)
 

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

하둡 알아보기(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
 
[Week5] Getting started with R
[Week5] Getting started with R[Week5] Getting started with R
[Week5] Getting started with Rneuroassociates
 
Zeppelin and Open Source Ecosystem and Silicon Valley
Zeppelin and Open Source Ecosystem and Silicon ValleyZeppelin and Open Source Ecosystem and Silicon Valley
Zeppelin and Open Source Ecosystem and Silicon ValleyDataya Nolja
 
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석r-kor
 
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안치완 박
 
데이터 레이크 알아보기(Learn about Data Lake)
데이터 레이크 알아보기(Learn about Data Lake)데이터 레이크 알아보기(Learn about Data Lake)
데이터 레이크 알아보기(Learn about Data Lake)SeungYong Baek
 
sparklyr을 활용한 R 분산 처리
sparklyr을 활용한 R 분산 처리sparklyr을 활용한 R 분산 처리
sparklyr을 활용한 R 분산 처리Sang-bae Lim
 
spark database Service
spark database Servicespark database Service
spark database Service창언 정
 
왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지 왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지 Un Gi Jung
 
[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준NAVER D2
 
How to use apache spark (based on the java example)
How to use apache spark (based on the java example)How to use apache spark (based on the java example)
How to use apache spark (based on the java example)월간 IT 슬라이드
 
2. Application - Sqoop Import
2. Application - Sqoop Import2. Application - Sqoop Import
2. Application - Sqoop Importmerry7
 
Distributed Programming Framework, hadoop
Distributed Programming Framework, hadoopDistributed Programming Framework, hadoop
Distributed Programming Framework, hadoopLGU+
 
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...Chanjin Park
 
DataWorks Summit 2017
DataWorks Summit 2017DataWorks Summit 2017
DataWorks Summit 2017Daesung Park
 
Spark performance tuning
Spark performance tuningSpark performance tuning
Spark performance tuninghaiteam
 
올챙이 현재와 미래
올챙이 현재와 미래올챙이 현재와 미래
올챙이 현재와 미래cho hyun jong
 

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

What is spark
What is sparkWhat is spark
What is spark
 
하둡 알아보기(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
 
Apache Spark
Apache SparkApache Spark
Apache Spark
 
[Week5] Getting started with R
[Week5] Getting started with R[Week5] Getting started with R
[Week5] Getting started with R
 
Zeppelin and Open Source Ecosystem and Silicon Valley
Zeppelin and Open Source Ecosystem and Silicon ValleyZeppelin and Open Source Ecosystem and Silicon Valley
Zeppelin and Open Source Ecosystem and Silicon Valley
 
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석
 
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
[Open Technet Summit 2014] 쓰기 쉬운 Hadoop 기반 빅데이터 플랫폼 아키텍처 및 활용 방안
 
데이터 레이크 알아보기(Learn about Data Lake)
데이터 레이크 알아보기(Learn about Data Lake)데이터 레이크 알아보기(Learn about Data Lake)
데이터 레이크 알아보기(Learn about Data Lake)
 
sparklyr을 활용한 R 분산 처리
sparklyr을 활용한 R 분산 처리sparklyr을 활용한 R 분산 처리
sparklyr을 활용한 R 분산 처리
 
spark database Service
spark database Servicespark database Service
spark database Service
 
왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지 왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지
 
[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준
 
How to use apache spark (based on the java example)
How to use apache spark (based on the java example)How to use apache spark (based on the java example)
How to use apache spark (based on the java example)
 
Spark Summit 2019
Spark Summit 2019Spark Summit 2019
Spark Summit 2019
 
2. Application - Sqoop Import
2. Application - Sqoop Import2. Application - Sqoop Import
2. Application - Sqoop Import
 
Distributed Programming Framework, hadoop
Distributed Programming Framework, hadoopDistributed Programming Framework, hadoop
Distributed Programming Framework, hadoop
 
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
 
DataWorks Summit 2017
DataWorks Summit 2017DataWorks Summit 2017
DataWorks Summit 2017
 
Spark performance tuning
Spark performance tuningSpark performance tuning
Spark performance tuning
 
올챙이 현재와 미래
올챙이 현재와 미래올챙이 현재와 미래
올챙이 현재와 미래
 

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

  • 1. Apache Zeppelin 빅데이터분석을 위한 스파크2 프로그래밍 wikibook@wikibook.co.kr +SparkR을 활용한 데이터 분석
  • 3. 을 활용한 데이터 분석 R ■ 의학, 제조, 교육, 금융 등 다양한 산업 분야에서 사용 ■ 머신러닝, 데이터 마이닝, 데이터 시각화를 위한 그래프 처리 분야 등에서 널리 사용 ■ 무료 소프트웨어이지만 오랜 기간 사용되면서 그 기능과 안정성을 충분히 검증 ■ 패키지 기반의 확장성을 제공 R데이터 마이닝 제조 머신러닝 의학 통계 분석 교육 오픈소스 History Graphics 금융
  • 4. 을 활용한 데이터 분석 R 신뢰성과 기능성, 확장성과 경제성을 갖춘 훌륭한 데이터 분석도구 !!! 신뢰성 기능성 확장성 경제성 R
  • 5. 을 활용한 데이터 분석 R ? 하지만, R에도 약점은 있으니... ■ 대용량 데이터 처리에 취약하다 ■ R 병렬 처리 패키지만으로는 아무래도 부족한… R ** TB
  • 6. 을 활용한 데이터 분석 R + Hadoop ? ■ 하둡을 사용해 보자! ■ 대용량 데이터를 HDFS와 같은 분산 저장소에 올려놓고 ■ 그 결과로 생성된 파일을 가지고 R을 이용한 데이터 분석을 수행 ■ 하둡의 맵리듀스를 비롯한 다양한 빅데이터 처리 도구를 이용하여 대용량 데이터에 대한 전 처리를 수행한 뒤 R ** TB HDFS Files Files Files Files MapReduce + Hive, Pig, HBase …
  • 7. + Spark ? ■ 그런데 뭐가 달라졌지? ■ 이번엔 스파크(스파크R)를 활용해 보자! R ** TB HDFS Files Files Files Files Spark 을 활용한 데이터 분석 R
  • 8. + Spark을 활용한 데이터 분석 R R+ SparkR package ** TB HDFS 스파크R을 사용하게 되면 ■ 대용량 데이터 처리 결과를 “파일”로 만들고 그 “파일”을 다시 R로 분석하는 단계를 거칠 필요가 없다. ■ R 스크립트로 스파크에 직접 연동한다!
  • 9. R+ SparkR package ** TB HDFS R에서 직접 스파크 클러스터에 작업을 제출하고 … 그 결과를 R 데이터프레임 형태로 직접 전달받는다! + Spark을 활용한 데이터 분석 스파크 클러스터 R Server Server Server Server Server Server Server
  • 10. ■ 클러스터 기반 대용량 분산 데이터 처리 ■ 다양한 기능 제공 머신러닝 RDD 분산 데이터 처리 분산SQL Dataset DataFrame Graph 알고리즘 스파크R Text, JSon, Parquet... Spark Streaming Spark Spark ?
  • 11. Ex) SparkR 쉘에서 실행한 경우! 1. Java 설치 2. Spark 설치 3. R 설치 4. SparkR 패키지 로드 5. 스파크R(Spark + R)을 이용한 데이터 처리 Spark + R(쉘에서 작업)
  • 12. Ex) RStudio에서 실행한 경우! Spark + R(RStudio에서 작업) 1. Java 설치 2. Spark 설치 3. R 설치 4. Rstudio 설치 5. SparkR 패키지 로드 6. 스파크R(Spark + R)을 이용한 데이터 처리
  • 13. https://zeppelin.apache.org/ Zeppelin(웹 브라우저로 작업) 1. 데이터 분석을 위한 웹 노트(코드 에디터) 제공 2. NF랩스(한국)에서 개발되어 아파치 톱 레벨 프로젝트 등극 3. 인터프리터(Interpreter)를 통해 스파크, Hbase, 쉘, R, 카산드라, 하이브등 다양한 외부 시스템 및 라이브러리 연동 4. 결과 데이터에 대한 시각화 기능 제공 5. Dynamic Form 생성 기능 제공
  • 14. 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
  • 15. Zeppelin 설치(빌드) 1. 빌드가 끝난 후 2. zeppelin-distribution/target/ zeppelin-0.8.0-SNAPSHOT. tar.gz 생성 됨 3. 위 파일 압축을 원하는 위치로 이동 후 압축 해제 (ex: ~/Apps/ zeppelin-0.8.0-SNAPSHOT)
  • 16. 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 설치
  • 17. 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 설치
  • 18. 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 설치
  • 19. 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 설정
  • 20. Zeppelin 구동 1. 제플린 데몬 구동 2. 서버 실행 후 브라우저를 통해 http://서버IP:8080 으로 접속 ■ zeppelin_home/bin/zeppelin-daemon.sh start ( start 대신 “stop” 이나 “restart” 가능)
  • 21. Zeppelin 노트 생성 1. 상단의 Notebook - “+ Create new note”를 누르고 아래 화면에서 노트북 이름 입력
  • 22. Zeppelin 노트 실행 1. 노트에 println(Hello, World!!) 라고 입력 후 실행 (실행은 READY 문자옆의 화살표 모양 아이콘) ■ 간단한 예제 실행을 통해… ■내부적으로 스파크 잡 실행 + 스파크 세션 및 스파크 실행 환경 구성 실행결과 코드 실행버튼
  • 23. Zeppelin 노트 실행 1. R 그래프 그려보기
  • 24. Zeppelin 노트 실행 1. R 데이터프레임과 스파크 데이터프레임간의 상호 변환을 통한 데이터 처리