View
1.587
Download
5
Embed Size (px)
Citation preview
을 활용한
데이터 분석
R
을 활용한
데이터 분석
R■의학,제조,교육,금융등
다양한산업분야에서사용
■머신러닝,데이터마이닝,
데이터시각화를위한
그래프처리분야등에서널리사용
■무료소프트웨어이지만
오랜기간사용되면서
그기능과안정성을충분히검증
■패키지기반의확장성을제공
R데이터 마이닝
제조
머신러닝
의학
통계 분석
교육
오픈소스
History
Graphics
금융
을 활용한
데이터 분석
R
신뢰성과기능성,
확장성과 경제성을 갖춘
훌륭한 데이터 분석도구 !!!
신뢰성
기능성
확장성
경제성
R
을 활용한
데이터 분석
R
?하지만, R에도 약점은 있으니...
■대용량데이터처리에취약하다
■R병렬처리패키지만으로는
아무래도부족한…
신뢰성과기능성,
확장성과 경제성을 갖춘
훌륭한 데이터 분석도구 !!!R ** TB
을 활용한
데이터 분석
R + Hadoop
?
■하둡을사용해보자!
■대용량데이터를HDFS와같은분산저장소에올려놓고
■그결과로생성된파일을가지고R을이용한데이터분석을수행
■하둡의맵리듀스를비롯한다양한빅데이터처리도구를
이용하여대용량데이터에대한전처리를수행한뒤
R ** TBHDFS
FilesFilesFilesFiles
MapReduce
+
Hive, Pig, HBase …
+ Spark
?
■그결과로생성된파일을가지고R을이용한데이터분석을수행
■그런데뭐가달라졌지?
■이번엔스파크(스파크R)를활용해보자!
R ** TB
HDFS
FilesFilesFilesFiles
Spark
을 활용한
데이터 분석
R
+ Spark을 활용한
데이터 분석
R
R+
SparkR package
** TB
HDFS
스파크R을 사용하게 되면
■대용량데이터처리결과를“파일”로
만들고그“파일”을다시R로분석하는
단계를거칠필요가없다.
■R스크립트로스파크에직접연동한다!
R+
SparkR package
** TB
HDFS
R에서직접스파크클러스터에작업을제출하고…그결과를R데이터프레임형태로직접전달받는다!
+ Spark을 활용한
데이터 분석
스파크 클러스터
R
ServerServerServerServerServerServerServer
■클러스터기반대용량분산데이터처리
■다양한기능제공
머신러닝
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.머신러닝–실행결과
감사합니다.