SlideShare a Scribd company logo
1 of 41
Download to read offline
Data Warehouse, Paper, Collaboration
Zeppelin@DMLAB
김태준(Jun Kim)
i2r.jun@gmail.com
2016. 09. 21.
Zeppelin Meetup
NAVER D2 Startup Factory
Data Mining Lab.
University Of Seoul
안녕하세요, 김태준! 입니다.
• 서울시립대학교 데이터마이닝 연구실에서
• 기술 지원 (Ambari 설치, Zeppelin 설치 등...)
• 화재 예측을 위한 빅데이터 분석
• 밖에서는
• MeteMQ - IoT & JavaScript App Platform
클러스터 환경
• Ambari(2.4.0), HDP(2.5.0), Zeppelin(0.7.0-SNAPSHOT)
• Master 1대, slave 8대
너네 제플린 왜 써?
• “화재 예측을 위한 빅데이터 분석”을 해보자!
• 화재 분석을 위한 Data Warehouse(DW)를 구축해볼까?
• 요즘 뜨는 Hive를 사용해보자!
• ETL은 뭘로 할래? Spark!
• Hive와 Spark를 함께 사용할 수 있는 도구는?
Hive, Spark 궁합 매우 좋아요~
ZEPPELIN
• Spark, Hive를 한 곳에서
• SQL만으로 시각화
• 노트북 형식으로 소스 코드 관리
제플린 안쓰면 완전 바보 아니냐?
이 세 가지만 보고 사용했으나
더욱더 엄청난 것들이 존재했다...
노트 사용 통계
•#Notebooks = 66
•#Paragraphs = 850
Language #Paragraphs Usage
spark 613 ETL, 머신러닝
spark-sql 147 분석, 시각화
markdown 55 문서 작성
hive 35 Deprecated
Spark2의 폭넓은 SQL 지원으로 Hive는 저장소로 전락함...
Hive는 거들뿐...Subquery!
저희는 제플린 노트북 이렇게 씁니다
부록: 맨 뒤에 제플린 노트 통계 구하는 코드 있습니당
ETL?
• Extract, Transform, Load
• Raw data를 DW에 맞게 

변형하여 저장하는 과정
• 저희는 주로 공공 데이터
• Trasform 코드는 매우 길다
• DW 스키마는 변하기 마련
spark.read.csv(…)
df.write.saveAsTable(“HIVE”)
df.write.parquet(“HDFS”)
E
T
T
T
T
T
T
T
T
L끝나지 않는 transform...
테이블 버전 관리,
ETL 코드 정리가 절실하다...
OTL로 보이는건 저의 착각?
“CHANGELOG.md”
“CHANGELOG.md”
• ETL 버전별로 테이블 생성, HDFS에 Parquet으로 저장
• CHANGELOG에서는 markdown으로 변경사항을 기
록하고, Hive 테이블을 교체하는 코드 작성
• 즉, Hive에는 현재 버전의 테이블, HDFS에는 모든 버전
의 테이블들을 Parquet으로 저장
Parquet
Latest
All
삶이 윤택해짐
• 자신감과 함께 DROP TABLE
• 잘못되면 이전 버전으로 돌리면
되니까!
• CHANGELOG덕에 스키마 변
경시 어떤 버전을 변경해야 할
지 알 수 있음
spark.read.csv(…)
df.write.saveAsTable(“HIVE”)
df.write.parquet(“HDFS”)
E
T
T
T
T
T
L
T개수 줄음
처음부터 다시 ETL 노노!
논문!
대학원이니 ETTTTTTTTL 과정에서
이 나와야겠죠?
논문!
with
본격!
ETL의 한 예로...
화재 뉴스 기사를 분석하기 위해 뉴스 기사 14만건 수집
검색 엔진에 “화재”를 검색하여 얻은 뉴스들이었지만,
불순물은 존재하기 마련
화재 예방, 연예인이 화재다 등등...
– Professor –
“화재	뉴스	기사를	필터링	하거라”
화재 뉴스 기사 필터링
• 1000건 정도 직접 labeling 하여 분류 모델을 만들자!
• 1000건은 내가 할테니 13만9천건은 Spark 네가 하거라
• But, 검색 결과라 이미 비슷한 단어들을 가짐
• 38개의 메타 데이터를 이용해서 성능을 향상시켜보자!
결국엔 1500건함 ㅠㅠ
어떻게 할까?
화재 뉴스 기사는 길이가 짧다!
메타데이터 쓰게된 이유!
내용 길이
제목길이
Zeppelin을 이용해 산점도로 나타내어 쉽게 알 수 있었다
제플린과 함께라면 데이터 탐색, 어렵지 않아요!
머신러닝 도중 같은 문제 발생...
그리하여 깨달은 사실...
머신러닝 파이프라인은 길고...
Feature 버전은 많아지고...
앙상블 모델 조합 수는 더 늘어나고...
모델도 늘어나고...
이 노트 실행했다 저 노트 실행했다;
노트가 너무 길어져 분리 했더니...
즉, 노트 간의 dependency 발생
코드를 정리할 필요가 생김
“노트 간의 변수 공유는 죄악이다”
전역변수처럼!
제플린의 Spark interpreter 설정에서
노트간의 interpreter 공유를 끔
노트 간의 변수 공유가 불가능해짐
이 작은 제약 사항이 불러온
행복한 변화
• 노트 간 dependency 제거
• 어떤 노트를 실행하기에 앞서 다른 노트를 실행할 필요
가 없음
• 모든 노트는 언제든지 독립적으로 실행 가능함 (run all
paragraphs를 마구 누를 수 있다)
• 그렇다면 노트 간의 데이터 전달은? HDFS를 통해서만!
1. Feature Extraction,
Transformation, and
Selection
2. Fitting & Model Selection
& Tuning
3. Ensemble
4. Evaluation
ML Pipeline Stage Isolation
Feature
Prediction
Model
더욱더 윤택해진 삶
• 소스 코드와 산출물 모두 깔끔하게 정리됨
• Job fail도 걱정 없음
• 이전 스테이지들을 실행할 필요가 없으니 실행 속도 빨
라짐
• 스테이지 단위로 소스 코드 변경이 용이
• 각 스테이지의 어떤 버전이 가장 좋은지 비교 가능
• ex) TF/IDF? ChiSq?
실험이 깔끔해졌다!
그런데, 논문 쓰기도 쉽다!
실험 결과 시각화, CSV로 저장,
Excel에서 바로 열 수 있다!
실험 결과 저장하기
정렬!다운로드!
// 실험 결과를 담은 DataFrame metric 생성
metric.createOrReplaceTempView(“metric”)
%sql SELECT * FROM metric 임시 테이블 생성
성능 지표 별로 어떤 모델이 가장 좋은지 한 눈에 알 수 있음
ROC Curve
Random Forest Feature Importance
Logistic Regression Coefficient
내용 길이
내용 길이
제플린과 함께 93.3%의 정확도로
화재 뉴스 기사를 필터링하고,
무사히 논문을 제출, DW 완성...
2013년 구로 디지털단지 화재
역경과 고난을 이겨낸 후...
서울특별시 구별, 연도별 (화재 뉴스 수 / 건물 수)
{건물, 날짜, 지역} dimension과 뉴스 기사 fact table 조인 분석
Collaboration
“교수님, 실험 결과 나왔습니다!”
간지↑
Zeppelin for Collaboration
• 노트북 공유
• Report를 작성하여 날려주면 좋다!
• 회의에서 적극 활용함
이젠 너무나 당연한 사실!
제플린 오른쪽 상단에서 클릭
결과물만 출력됨
연구실 벽면
제플린 상시대기
궁금점, 아이디어를 바로 질의, 시각화
왔다 갔다 하면서 데이터를 자주 접하게 되어
새로운 아이디어가 떠오름
평상시, 혹은 회의할 때
데이터에 대해 논하며 회의할 때 좋아염!
많이 쓰이는 건축물 자재 순위는?
회의하면서 나온 질의 예
정말 간단한 SQL이더라도 시각화를 해주니
눈에 쏙쏙 들어옴
저희 연구실 놀러오신 다른 교수님도 신기해 하시더군요 ㅎㅎ
일반목구조
불나면 큰일나요
SQL이 회의 기록으로 남게됨!
마지막으로!
Apache Contributor가 될 기회!
• 아직 초기 프로젝트라 발전 가능성이 많다
• 그것은 곧 기여할 수 있는 곳이 많다는 것!
• 제플린 멤버분들 정말 친절하십니다
• 여러분도 Apache 프로젝트의 contributor가 될 수 있
습니다!
코멘트 보고 감동 ㅠ
Zeppelin for
{DW, Paper, Collaboration}?
• 폴더 구조와 markdown을 이용한 소스 코드의 깔끔한 정리
• Markdown으로 DW 테이블 버전 관리
• 실험 결과 시각화 및 다운로드
• 회의에 적극 활용
사랑해요 제플린♥
완전 최고!
감사합니다.
진심으로
김태준
i2r.jun@gmail.com
datamining.uos.ac.kr
Zeppelin Notebook
언어 사용 통계 구하기 소스 코드
부록!
https://gist.github.com/tae-jun/
138f595228aa83e89387b5d39d33b315
슬라이드 쉐어 하단의 설명에서 URL 복사하실 수 있습니다

More Related Content

What's hot

Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?KSLUG
 
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Yongho Ha
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106SangHoon Lee
 
Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기SangWoo Kim
 
Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Donam Kim
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 
왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지 왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지 Un Gi Jung
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
Theano 와 Caffe 실습
Theano 와 Caffe 실습 Theano 와 Caffe 실습
Theano 와 Caffe 실습 정주 김
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템NAVER D2
 
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Hyoungjun Kim
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 
Data pipeline and data lake
Data pipeline and data lakeData pipeline and data lake
Data pipeline and data lakeDaeMyung Kang
 
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기흥래 김
 
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)Seongyun Byeon
 
추천시스템 구축을 위한 빅데이터 분석기법과 사례
추천시스템 구축을 위한 빅데이터 분석기법과 사례추천시스템 구축을 위한 빅데이터 분석기법과 사례
추천시스템 구축을 위한 빅데이터 분석기법과 사례HELENA LEE
 
Cloudera & Zookeeper
Cloudera & ZookeeperCloudera & Zookeeper
Cloudera & ZookeeperJunyoung Park
 

What's hot (20)

Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?
 
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
 
Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기
 
Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지 왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
Theano 와 Caffe 실습
Theano 와 Caffe 실습 Theano 와 Caffe 실습
Theano 와 Caffe 실습
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템
 
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
 
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
Data pipeline and data lake
Data pipeline and data lakeData pipeline and data lake
Data pipeline and data lake
 
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
 
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
 
추천시스템 구축을 위한 빅데이터 분석기법과 사례
추천시스템 구축을 위한 빅데이터 분석기법과 사례추천시스템 구축을 위한 빅데이터 분석기법과 사례
추천시스템 구축을 위한 빅데이터 분석기법과 사례
 
Cloudera & Zookeeper
Cloudera & ZookeeperCloudera & Zookeeper
Cloudera & Zookeeper
 
Cluster - spark
Cluster - sparkCluster - spark
Cluster - spark
 
AWS EMR + Spark ML
AWS EMR + Spark MLAWS EMR + Spark ML
AWS EMR + Spark ML
 

Viewers also liked

Zeppelin 탑승기: 오픈 소스 입문 이야기
Zeppelin 탑승기: 오픈 소스 입문 이야기Zeppelin 탑승기: 오픈 소스 입문 이야기
Zeppelin 탑승기: 오픈 소스 입문 이야기Taejun Kim
 
텐서플로 걸음마 (TensorFlow Tutorial)
텐서플로 걸음마 (TensorFlow Tutorial)텐서플로 걸음마 (TensorFlow Tutorial)
텐서플로 걸음마 (TensorFlow Tutorial)Taejun Kim
 
텐서플로우 기초 이해하기
텐서플로우 기초 이해하기 텐서플로우 기초 이해하기
텐서플로우 기초 이해하기 Yong Joon Moon
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016Taehoon Kim
 
하둡 HDFS 훑어보기
하둡 HDFS 훑어보기하둡 HDFS 훑어보기
하둡 HDFS 훑어보기beom kyun choi
 
20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표
20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표
20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표Taejoon Yoo
 
학교에선 알려주지 않는 오픈소스이야기 - 박치완님
학교에선 알려주지 않는 오픈소스이야기 - 박치완님학교에선 알려주지 않는 오픈소스이야기 - 박치완님
학교에선 알려주지 않는 오픈소스이야기 - 박치완님NAVER D2
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016Taehoon Kim
 
제조사의 N 스크린과 클라우드
제조사의 N 스크린과 클라우드제조사의 N 스크린과 클라우드
제조사의 N 스크린과 클라우드Jaeseon Hwang
 
Text Similarities - PG Pushpin
Text Similarities - PG PushpinText Similarities - PG Pushpin
Text Similarities - PG Pushpinjsurve
 
Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Hyoungjun Kim
 
고객건강관리앱제안서
고객건강관리앱제안서고객건강관리앱제안서
고객건강관리앱제안서Sinye Keum
 
Deep learning as_WaveExtractor
Deep learning as_WaveExtractorDeep learning as_WaveExtractor
Deep learning as_WaveExtractor동윤 이
 
Dueling network architectures for deep reinforcement learning
Dueling network architectures for deep reinforcement learningDueling network architectures for deep reinforcement learning
Dueling network architectures for deep reinforcement learningTaehoon Kim
 
Tajo_Meetup_20141120
Tajo_Meetup_20141120Tajo_Meetup_20141120
Tajo_Meetup_20141120Hyoungjun Kim
 
Ces2017브리핑 참석후기
Ces2017브리핑 참석후기Ces2017브리핑 참석후기
Ces2017브리핑 참석후기Peter Kim
 
[빅데이터 컨퍼런스 전희원]
[빅데이터 컨퍼런스 전희원][빅데이터 컨퍼런스 전희원]
[빅데이터 컨퍼런스 전희원]Jayoung Lim
 
모바일 웹/앱 관점에서 본 2012년 비즈니스 동향 및 2013년 전망
모바일 웹/앱 관점에서 본 2012년 비즈니스 동향 및 2013년 전망모바일 웹/앱 관점에서 본 2012년 비즈니스 동향 및 2013년 전망
모바일 웹/앱 관점에서 본 2012년 비즈니스 동향 및 2013년 전망Jaeseon Hwang
 
랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치Lee Seungeun
 

Viewers also liked (20)

Zeppelin 탑승기: 오픈 소스 입문 이야기
Zeppelin 탑승기: 오픈 소스 입문 이야기Zeppelin 탑승기: 오픈 소스 입문 이야기
Zeppelin 탑승기: 오픈 소스 입문 이야기
 
텐서플로 걸음마 (TensorFlow Tutorial)
텐서플로 걸음마 (TensorFlow Tutorial)텐서플로 걸음마 (TensorFlow Tutorial)
텐서플로 걸음마 (TensorFlow Tutorial)
 
텐서플로우 기초 이해하기
텐서플로우 기초 이해하기 텐서플로우 기초 이해하기
텐서플로우 기초 이해하기
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
 
하둡 HDFS 훑어보기
하둡 HDFS 훑어보기하둡 HDFS 훑어보기
하둡 HDFS 훑어보기
 
20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표
20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표
20160203_마인즈랩_딥러닝세미나_07 머신러닝 기반 고객 이탈 분석 유태준대표
 
학교에선 알려주지 않는 오픈소스이야기 - 박치완님
학교에선 알려주지 않는 오픈소스이야기 - 박치완님학교에선 알려주지 않는 오픈소스이야기 - 박치완님
학교에선 알려주지 않는 오픈소스이야기 - 박치완님
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
 
제조사의 N 스크린과 클라우드
제조사의 N 스크린과 클라우드제조사의 N 스크린과 클라우드
제조사의 N 스크린과 클라우드
 
Text Similarities - PG Pushpin
Text Similarities - PG PushpinText Similarities - PG Pushpin
Text Similarities - PG Pushpin
 
Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218
 
고객건강관리앱제안서
고객건강관리앱제안서고객건강관리앱제안서
고객건강관리앱제안서
 
Deep learning as_WaveExtractor
Deep learning as_WaveExtractorDeep learning as_WaveExtractor
Deep learning as_WaveExtractor
 
Dueling network architectures for deep reinforcement learning
Dueling network architectures for deep reinforcement learningDueling network architectures for deep reinforcement learning
Dueling network architectures for deep reinforcement learning
 
Tajo_Meetup_20141120
Tajo_Meetup_20141120Tajo_Meetup_20141120
Tajo_Meetup_20141120
 
Ces2017브리핑 참석후기
Ces2017브리핑 참석후기Ces2017브리핑 참석후기
Ces2017브리핑 참석후기
 
[빅데이터 컨퍼런스 전희원]
[빅데이터 컨퍼런스 전희원][빅데이터 컨퍼런스 전희원]
[빅데이터 컨퍼런스 전희원]
 
모바일 웹/앱 관점에서 본 2012년 비즈니스 동향 및 2013년 전망
모바일 웹/앱 관점에서 본 2012년 비즈니스 동향 및 2013년 전망모바일 웹/앱 관점에서 본 2012년 비즈니스 동향 및 2013년 전망
모바일 웹/앱 관점에서 본 2012년 비즈니스 동향 및 2013년 전망
 
랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치
 
Deep Reasoning
Deep ReasoningDeep Reasoning
Deep Reasoning
 

Similar to Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례

Machine Learning with Apache Spark and Zeppelin
Machine Learning with Apache Spark and ZeppelinMachine Learning with Apache Spark and Zeppelin
Machine Learning with Apache Spark and ZeppelinDataya Nolja
 
병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임codenavy
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투Ubuntu Korea Community
 
데이터 분석 1 - 소개
데이터 분석 1 - 소개데이터 분석 1 - 소개
데이터 분석 1 - 소개Jaewook Byun
 
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)Haezoom Inc.
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tae Young Lee
 
​『골빈해커의 3분 딥러닝』 맛보기
​『골빈해커의 3분 딥러닝』 맛보기​『골빈해커의 3분 딥러닝』 맛보기
​『골빈해커의 3분 딥러닝』 맛보기복연 이
 
180525 mobile visionnet_hanlim_extended
180525 mobile visionnet_hanlim_extended180525 mobile visionnet_hanlim_extended
180525 mobile visionnet_hanlim_extendedJaewook. Kang
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)Hyojun Jeon
 
자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLP자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLPEunjeong (Lucy) Park
 
EveryBody Tensorflow module1 GIST Jan 2018 Korean
EveryBody Tensorflow module1 GIST Jan 2018 KoreanEveryBody Tensorflow module1 GIST Jan 2018 Korean
EveryBody Tensorflow module1 GIST Jan 2018 KoreanJaewook. Kang
 
[Tf2017] day1 jwkang_pub
[Tf2017] day1 jwkang_pub[Tf2017] day1 jwkang_pub
[Tf2017] day1 jwkang_pubJaewook. Kang
 
코드스쿼드 iOS 교육 ML 발표자료
코드스쿼드 iOS 교육 ML 발표자료코드스쿼드 iOS 교육 ML 발표자료
코드스쿼드 iOS 교육 ML 발표자료HyunwooJung14
 
(독서광) 책 vs 책: 정형 vs 비정형 딥러닝
(독서광) 책 vs 책: 정형 vs 비정형 딥러닝(독서광) 책 vs 책: 정형 vs 비정형 딥러닝
(독서광) 책 vs 책: 정형 vs 비정형 딥러닝Jay Park
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipelineJongho Woo
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기Wonha Ryu
 
2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표JongkukLim
 
파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호Jiho Lee
 
파이썬과 커뮤니티와 한국어 오픈데이터
파이썬과 커뮤니티와 한국어 오픈데이터파이썬과 커뮤니티와 한국어 오픈데이터
파이썬과 커뮤니티와 한국어 오픈데이터Eunjeong (Lucy) Park
 

Similar to Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례 (20)

Machine Learning with Apache Spark and Zeppelin
Machine Learning with Apache Spark and ZeppelinMachine Learning with Apache Spark and Zeppelin
Machine Learning with Apache Spark and Zeppelin
 
병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
 
데이터 분석 1 - 소개
데이터 분석 1 - 소개데이터 분석 1 - 소개
데이터 분석 1 - 소개
 
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)
 
​『골빈해커의 3분 딥러닝』 맛보기
​『골빈해커의 3분 딥러닝』 맛보기​『골빈해커의 3분 딥러닝』 맛보기
​『골빈해커의 3분 딥러닝』 맛보기
 
180525 mobile visionnet_hanlim_extended
180525 mobile visionnet_hanlim_extended180525 mobile visionnet_hanlim_extended
180525 mobile visionnet_hanlim_extended
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
 
7 8 1
7 8 17 8 1
7 8 1
 
자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLP자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLP
 
EveryBody Tensorflow module1 GIST Jan 2018 Korean
EveryBody Tensorflow module1 GIST Jan 2018 KoreanEveryBody Tensorflow module1 GIST Jan 2018 Korean
EveryBody Tensorflow module1 GIST Jan 2018 Korean
 
[Tf2017] day1 jwkang_pub
[Tf2017] day1 jwkang_pub[Tf2017] day1 jwkang_pub
[Tf2017] day1 jwkang_pub
 
코드스쿼드 iOS 교육 ML 발표자료
코드스쿼드 iOS 교육 ML 발표자료코드스쿼드 iOS 교육 ML 발표자료
코드스쿼드 iOS 교육 ML 발표자료
 
(독서광) 책 vs 책: 정형 vs 비정형 딥러닝
(독서광) 책 vs 책: 정형 vs 비정형 딥러닝(독서광) 책 vs 책: 정형 vs 비정형 딥러닝
(독서광) 책 vs 책: 정형 vs 비정형 딥러닝
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipeline
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
 
2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표2021-11-16 모두콘 딥러닝 경량화 발표
2021-11-16 모두콘 딥러닝 경량화 발표
 
파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호
 
파이썬과 커뮤니티와 한국어 오픈데이터
파이썬과 커뮤니티와 한국어 오픈데이터파이썬과 커뮤니티와 한국어 오픈데이터
파이썬과 커뮤니티와 한국어 오픈데이터
 

Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례

  • 1. Data Warehouse, Paper, Collaboration Zeppelin@DMLAB 김태준(Jun Kim) i2r.jun@gmail.com 2016. 09. 21. Zeppelin Meetup NAVER D2 Startup Factory Data Mining Lab. University Of Seoul
  • 2. 안녕하세요, 김태준! 입니다. • 서울시립대학교 데이터마이닝 연구실에서 • 기술 지원 (Ambari 설치, Zeppelin 설치 등...) • 화재 예측을 위한 빅데이터 분석 • 밖에서는 • MeteMQ - IoT & JavaScript App Platform
  • 3. 클러스터 환경 • Ambari(2.4.0), HDP(2.5.0), Zeppelin(0.7.0-SNAPSHOT) • Master 1대, slave 8대
  • 4. 너네 제플린 왜 써? • “화재 예측을 위한 빅데이터 분석”을 해보자! • 화재 분석을 위한 Data Warehouse(DW)를 구축해볼까? • 요즘 뜨는 Hive를 사용해보자! • ETL은 뭘로 할래? Spark! • Hive와 Spark를 함께 사용할 수 있는 도구는? Hive, Spark 궁합 매우 좋아요~
  • 6. • Spark, Hive를 한 곳에서 • SQL만으로 시각화 • 노트북 형식으로 소스 코드 관리 제플린 안쓰면 완전 바보 아니냐? 이 세 가지만 보고 사용했으나 더욱더 엄청난 것들이 존재했다...
  • 7. 노트 사용 통계 •#Notebooks = 66 •#Paragraphs = 850 Language #Paragraphs Usage spark 613 ETL, 머신러닝 spark-sql 147 분석, 시각화 markdown 55 문서 작성 hive 35 Deprecated Spark2의 폭넓은 SQL 지원으로 Hive는 저장소로 전락함... Hive는 거들뿐...Subquery! 저희는 제플린 노트북 이렇게 씁니다 부록: 맨 뒤에 제플린 노트 통계 구하는 코드 있습니당
  • 8. ETL? • Extract, Transform, Load • Raw data를 DW에 맞게 
 변형하여 저장하는 과정 • 저희는 주로 공공 데이터 • Trasform 코드는 매우 길다 • DW 스키마는 변하기 마련 spark.read.csv(…) df.write.saveAsTable(“HIVE”) df.write.parquet(“HDFS”) E T T T T T T T T L끝나지 않는 transform...
  • 9. 테이블 버전 관리, ETL 코드 정리가 절실하다... OTL로 보이는건 저의 착각?
  • 11. “CHANGELOG.md” • ETL 버전별로 테이블 생성, HDFS에 Parquet으로 저장 • CHANGELOG에서는 markdown으로 변경사항을 기 록하고, Hive 테이블을 교체하는 코드 작성 • 즉, Hive에는 현재 버전의 테이블, HDFS에는 모든 버전 의 테이블들을 Parquet으로 저장 Parquet Latest All
  • 12. 삶이 윤택해짐 • 자신감과 함께 DROP TABLE • 잘못되면 이전 버전으로 돌리면 되니까! • CHANGELOG덕에 스키마 변 경시 어떤 버전을 변경해야 할 지 알 수 있음 spark.read.csv(…) df.write.saveAsTable(“HIVE”) df.write.parquet(“HDFS”) E T T T T T L T개수 줄음 처음부터 다시 ETL 노노!
  • 15. ETL의 한 예로... 화재 뉴스 기사를 분석하기 위해 뉴스 기사 14만건 수집 검색 엔진에 “화재”를 검색하여 얻은 뉴스들이었지만, 불순물은 존재하기 마련 화재 예방, 연예인이 화재다 등등...
  • 17. 화재 뉴스 기사 필터링 • 1000건 정도 직접 labeling 하여 분류 모델을 만들자! • 1000건은 내가 할테니 13만9천건은 Spark 네가 하거라 • But, 검색 결과라 이미 비슷한 단어들을 가짐 • 38개의 메타 데이터를 이용해서 성능을 향상시켜보자! 결국엔 1500건함 ㅠㅠ 어떻게 할까?
  • 18. 화재 뉴스 기사는 길이가 짧다! 메타데이터 쓰게된 이유! 내용 길이 제목길이 Zeppelin을 이용해 산점도로 나타내어 쉽게 알 수 있었다 제플린과 함께라면 데이터 탐색, 어렵지 않아요!
  • 19. 머신러닝 도중 같은 문제 발생... 그리하여 깨달은 사실... 머신러닝 파이프라인은 길고... Feature 버전은 많아지고... 앙상블 모델 조합 수는 더 늘어나고... 모델도 늘어나고... 이 노트 실행했다 저 노트 실행했다; 노트가 너무 길어져 분리 했더니... 즉, 노트 간의 dependency 발생 코드를 정리할 필요가 생김
  • 20. “노트 간의 변수 공유는 죄악이다” 전역변수처럼!
  • 21. 제플린의 Spark interpreter 설정에서 노트간의 interpreter 공유를 끔 노트 간의 변수 공유가 불가능해짐
  • 22. 이 작은 제약 사항이 불러온 행복한 변화 • 노트 간 dependency 제거 • 어떤 노트를 실행하기에 앞서 다른 노트를 실행할 필요 가 없음 • 모든 노트는 언제든지 독립적으로 실행 가능함 (run all paragraphs를 마구 누를 수 있다) • 그렇다면 노트 간의 데이터 전달은? HDFS를 통해서만!
  • 23. 1. Feature Extraction, Transformation, and Selection 2. Fitting & Model Selection & Tuning 3. Ensemble 4. Evaluation ML Pipeline Stage Isolation Feature Prediction Model
  • 24. 더욱더 윤택해진 삶 • 소스 코드와 산출물 모두 깔끔하게 정리됨 • Job fail도 걱정 없음 • 이전 스테이지들을 실행할 필요가 없으니 실행 속도 빨 라짐 • 스테이지 단위로 소스 코드 변경이 용이 • 각 스테이지의 어떤 버전이 가장 좋은지 비교 가능 • ex) TF/IDF? ChiSq?
  • 25. 실험이 깔끔해졌다! 그런데, 논문 쓰기도 쉽다! 실험 결과 시각화, CSV로 저장, Excel에서 바로 열 수 있다!
  • 26. 실험 결과 저장하기 정렬!다운로드! // 실험 결과를 담은 DataFrame metric 생성 metric.createOrReplaceTempView(“metric”) %sql SELECT * FROM metric 임시 테이블 생성 성능 지표 별로 어떤 모델이 가장 좋은지 한 눈에 알 수 있음
  • 28. Random Forest Feature Importance Logistic Regression Coefficient 내용 길이 내용 길이
  • 29. 제플린과 함께 93.3%의 정확도로 화재 뉴스 기사를 필터링하고, 무사히 논문을 제출, DW 완성...
  • 30. 2013년 구로 디지털단지 화재 역경과 고난을 이겨낸 후... 서울특별시 구별, 연도별 (화재 뉴스 수 / 건물 수) {건물, 날짜, 지역} dimension과 뉴스 기사 fact table 조인 분석
  • 32. “교수님, 실험 결과 나왔습니다!” 간지↑
  • 33. Zeppelin for Collaboration • 노트북 공유 • Report를 작성하여 날려주면 좋다! • 회의에서 적극 활용함 이젠 너무나 당연한 사실! 제플린 오른쪽 상단에서 클릭 결과물만 출력됨
  • 35. 궁금점, 아이디어를 바로 질의, 시각화 왔다 갔다 하면서 데이터를 자주 접하게 되어 새로운 아이디어가 떠오름 평상시, 혹은 회의할 때 데이터에 대해 논하며 회의할 때 좋아염!
  • 36. 많이 쓰이는 건축물 자재 순위는? 회의하면서 나온 질의 예 정말 간단한 SQL이더라도 시각화를 해주니 눈에 쏙쏙 들어옴 저희 연구실 놀러오신 다른 교수님도 신기해 하시더군요 ㅎㅎ 일반목구조 불나면 큰일나요 SQL이 회의 기록으로 남게됨!
  • 38. Apache Contributor가 될 기회! • 아직 초기 프로젝트라 발전 가능성이 많다 • 그것은 곧 기여할 수 있는 곳이 많다는 것! • 제플린 멤버분들 정말 친절하십니다 • 여러분도 Apache 프로젝트의 contributor가 될 수 있 습니다! 코멘트 보고 감동 ㅠ
  • 39. Zeppelin for {DW, Paper, Collaboration}? • 폴더 구조와 markdown을 이용한 소스 코드의 깔끔한 정리 • Markdown으로 DW 테이블 버전 관리 • 실험 결과 시각화 및 다운로드 • 회의에 적극 활용 사랑해요 제플린♥ 완전 최고!
  • 41. Zeppelin Notebook 언어 사용 통계 구하기 소스 코드 부록! https://gist.github.com/tae-jun/ 138f595228aa83e89387b5d39d33b315 슬라이드 쉐어 하단의 설명에서 URL 복사하실 수 있습니다