SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Python + Spark

머신러닝을 위한 완벽한 결혼
James Ahn
DeepNumbers
The Problem
Algorithm Trading?
• 알고리즘 트레이딩은 수학적 계산과 IT 시스템을 이
용해 트레이딩을 하는 것으로 시스템 트레이딩,
Algo Trading 혹은 Blackbox 트레이딩이라고
한다.
• 알고리즘 트레이딩은 투자은행, 연기금, 헤지펀드,
증권회사등 많은 곳에서 사용되고 있으며, 최근 몇
년사이에는 수학적지식과 IT지식을 가진 개인들도
많이 참여하고 있다.
Algorithm Trading의 현재
미국은 2012년 알고리즘 트레이딩 거래량이 85%에 달할만큼 알고리즘 트레이딩은 가파르게 증가
당시의 개발환경
Machine Learning Server
i7 4700k, Overclock
Memory 32GB
1 SSD, 1 SATA
Python + Scikit
Data Server
MySQLDB
1Gb
처음에는 아래의 환경으로도 즐거울 수 있었다.
문제는 학습시간!!!
머신러닝 모델들을 학습시키는데 대략 1주일정도의 시간이 소요되었다.!!!
머신러닝 지식이 늘어남에 따라 모델증가
잔기술이 증가하니, 자연스럽게 많은 모델들이 생겨나고 학습시간이 비약적으로 증가하였다!!!
시간이 지날수록 더욱 잡다한 모델들이 생겨날 것으로 강력하게 예상된다.
First Trial
Powered By Celery & RSync
Celery를 이용한 작업의 분산
그리고
Rsync를 이용한 결과 파일의 업데이트
Celery = Distributed Async Task Queue
긴 실행시간을 필요로 하는 작업
백그라운드로 실행할 필요가 있는 작업
주기적으로 실행할 필요가 있는 작업
개선된 개발환경
ML Master
Celery
RabbitMQ
Data Server
MySQLDB
2대의 서버를 구입하고, Celery를 이용한 머신러닝 학습 분산 실시를 하였다.
ML Slave
ML Slave
Rsync를 이용한 결과물 동기화
학습시간이 짧아졌다.
7일 2일
총 3대의 서버를 이용해 학습을 시키니 시간이 단축되었다. 당연하게도 …
PySpark + Mesos
First Trial의 가벼움
ML Slave
ML Slave
ML Slave
직접 할당
• 리소스관리의 어려움
• 노드 확장성의 문제
• 아키텍쳐의 문제
• 생각보다 까다로운 Celery
• 데이터 공유 문제
미친듯이 많은 모델들을 실시간으로 생성할 수 있는 뭔가 보다 세련된 방법이 필요하다!!!
SSH Execution?
내가 필요한 것!
Data #1
Data #2
Data #N
Data Store
Model #1
Model #2
Model #N
Prediction
학습에서 최종모델 배포까지 1-2시간이내 완료!!!
aggregation training deployment
좀 더 구체적으로 표현하면
• 다양한 종류의 데이터 소스 사용
• 실시간 데이터 분석 및 학습
• 대용량 데이터 처리 기능
• 학습종료된 모델의 실시간 배치
• 머신러닝 노드 클러스터 확장
• 보다 효율적인 리소스 활용
• 머신러닝 클러스터 관리의 편리함
• Docker 연동
• 기타등등
Apache Mesos + Spark
Apache Spark
• Speed
• Up to 100x faster than hadoop
• Ease of Use
• Python, Scala, Java, R
• Generality
• Combine SQL, streaming, analytics
• Runs Everywhere
• Mesos, Hadoop, Standalone
• HDFS, Cassandra, Hbase, S3
Lightning fast cluster computing
Fast and scalable general data processing framework
Apache Mesos
• Linear Scalability
• Two Level Scheduling
• High Availability
• APIs
• Pluggable Isolation
• Resource Management
• Supports Spark, Hadoop, Kafaa, ElasticSearch
A Distributed System Kernel
abstracts CPU, memory, storage, and other compute resources away from machines,

enabling fault-tolerant and elastic distributed systems
Running Spark in Mesos
Client Mode Cluster Mode
• 명령을 실행하는 머신에서 직접 실행
• spark-env.sh에 설정 필요
• MESOS_NATIVE_JAVA_LIBRARY
• SPARK_EXECUTOR_URI
• Mesos에 의해 태스크가 실행됨
• MesosClusterDispatcher 를 실행시켜야 함
• Spark-submit 을 이용해 실행
• 실행파일을 클러스터에서 액세스 가능하도록 설정
Mesos Run Modes
Fine-grained Coarse-grained
• 메모리는 정적으로 할당받지만 CPU는 공유함
• 다른 태스크의 상황에 따라 성능이 변화됨
• conf.set("spark.mesos.coarse", "false")
• 메모리와 CPU를 모두 정적으로 할당받음
• 아래의 값들에 의해 할당됨
• spark.executor.memory

spark.executor.cores
• Spark.cores.max/spark.executor.cores
• conf.set("spark.mesos.coarse", ”true")
Python Library Management
Egg or Zip Configuration Tool
• Python 필요한 라이브러리를 egg or zip 파일로 만
들어 pyFiles에 추가해 배포할 수 있음
• 실행하려고 할 때마다 매번 라이브러리 배포
• Ansible, puppet, chef와 같은 도구를 이용해 필요
한 라이브러리를 설치할 수 있음
• 태스크 실행시 라이브러리는 포함하지 않음
Hadoop이 필요할까?
• 머신러닝만 생각하면 굳이 필요는 없었지
만 …
• Distributed File System
• Disaster Recovery
• Hadoop Ecosystem
spark-submit, 보다 세련된 뭔가가 필요해
./bin/spark-submit --class SimpleApp --
master mesos://dev-goose:7077 --deploy-
mode cluster simple-project_2.10-1.0.jar
REST API based Job Server
Spark Job Server
• "Spark as a Service": Simple REST interface (including HTTPS) for all aspects of
job, context management
• Support for Spark SQL, Hive, Streaming Contexts/jobs and custom job contexts!
See Contexts.
• LDAP Auth support via Apache Shiro integration
• Works with Standalone Spark as well as Mesos and yarn-client
• Named Objects (such as RDDs or DataFrames) to cache and retrieve RDDs or
DataFrames by name, improving object sharing and reuse among jobs.
https://github.com/spark-jobserver/spark-jobserver
현재의 머신러닝 클러스터
ML Slave 1
ML Slave 2
ML Slave 3
ML Slave 4
ML MasterSpark Job Server
Hadoop
Before vs After
• 노드추가가 편해졌음
• Mesos Slave, Hadoop 설정만으로 OK
• Streaming 처리가 가능해진 환경
• Online Learning을 시도할 수 있게 되었음
• Dataframe이 RDD보다 성능이 더욱 좋음.
• Celery보다는 안정적인 환경
• 극적인 시간단축의 핵심은 머신러닝 알고리즘
• Tensorflow를 Spark에서
• 대규모의 데이터를 이용한 학습이 가능해짐
Performance?
• Machine Learning Library
• Hyper-Parameter Optimization
• Machine Learning Models
• Dataframe
• Money
5 Things To Remember
감사합니다.

Mais conteúdo relacionado

Mais procurados

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
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례Taehyeon Oh
 
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처hoondong kim
 
3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석Saltlux Inc.
 
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석Amazon Web Services Korea
 
Cloudera & Zookeeper
Cloudera & ZookeeperCloudera & Zookeeper
Cloudera & ZookeeperJunyoung Park
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106SangHoon Lee
 
3회 서울 Hadoop 사용자 모임 / 아파치 피닉스
3회 서울 Hadoop 사용자 모임 / 아파치 피닉스3회 서울 Hadoop 사용자 모임 / 아파치 피닉스
3회 서울 Hadoop 사용자 모임 / 아파치 피닉스Teddy Choi
 
람다아키텍처
람다아키텍처람다아키텍처
람다아키텍처HyeonSeok Choi
 
AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3Keeyong Han
 
Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Teddy Choi
 
E-commerce BigData Scale AI Journey
E-commerce BigData Scale AI JourneyE-commerce BigData Scale AI Journey
E-commerce BigData Scale AI Journeyhoondong kim
 
추천시스템 구축을 위한 빅데이터 분석기법과 사례
추천시스템 구축을 위한 빅데이터 분석기법과 사례추천시스템 구축을 위한 빅데이터 분석기법과 사례
추천시스템 구축을 위한 빅데이터 분석기법과 사례HELENA LEE
 
100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning Systemhoondong kim
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna현철 박
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache TajoGruter
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 
하둡 알아보기(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
 
Gruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigDataGruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigDataGruter
 

Mais procurados (20)

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...
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례
 
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
 
3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석
 
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
 
Cloudera & Zookeeper
Cloudera & ZookeeperCloudera & Zookeeper
Cloudera & Zookeeper
 
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
 
3회 서울 Hadoop 사용자 모임 / 아파치 피닉스
3회 서울 Hadoop 사용자 모임 / 아파치 피닉스3회 서울 Hadoop 사용자 모임 / 아파치 피닉스
3회 서울 Hadoop 사용자 모임 / 아파치 피닉스
 
람다아키텍처
람다아키텍처람다아키텍처
람다아키텍처
 
AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3
 
Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)
 
E-commerce BigData Scale AI Journey
E-commerce BigData Scale AI JourneyE-commerce BigData Scale AI Journey
E-commerce BigData Scale AI Journey
 
추천시스템 구축을 위한 빅데이터 분석기법과 사례
추천시스템 구축을 위한 빅데이터 분석기법과 사례추천시스템 구축을 위한 빅데이터 분석기법과 사례
추천시스템 구축을 위한 빅데이터 분석기법과 사례
 
100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
하둡 알아보기(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
 
Gruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigDataGruter TECHDAY 2014 MelOn BigData
Gruter TECHDAY 2014 MelOn BigData
 

Destaque (20)

Python trading
Python tradingPython trading
Python trading
 
Silabus Kimia
Silabus KimiaSilabus Kimia
Silabus Kimia
 
My Curriculum Vitae
My Curriculum VitaeMy Curriculum Vitae
My Curriculum Vitae
 
Ação: Casa dos Idosos de Sta Etelvina
Ação: Casa dos Idosos de Sta EtelvinaAção: Casa dos Idosos de Sta Etelvina
Ação: Casa dos Idosos de Sta Etelvina
 
Animales de preferencia
Animales de preferenciaAnimales de preferencia
Animales de preferencia
 
My Infographic work 1
My Infographic work 1My Infographic work 1
My Infographic work 1
 
Alejandra Valarezo
Alejandra ValarezoAlejandra Valarezo
Alejandra Valarezo
 
Historia del telefono
Historia del telefonoHistoria del telefono
Historia del telefono
 
Android
AndroidAndroid
Android
 
Escape game
Escape gameEscape game
Escape game
 
NewResume3Pages
NewResume3PagesNewResume3Pages
NewResume3Pages
 
Copiade bitacoraracca
Copiade bitacoraraccaCopiade bitacoraracca
Copiade bitacoraracca
 
Permentan 68 2015 pemeriksa pvt
Permentan 68 2015 pemeriksa pvtPermentan 68 2015 pemeriksa pvt
Permentan 68 2015 pemeriksa pvt
 
Colegio técnico profesional de carrizal
Colegio técnico profesional de carrizalColegio técnico profesional de carrizal
Colegio técnico profesional de carrizal
 
Copa america 2016 fixture
Copa america 2016 fixtureCopa america 2016 fixture
Copa america 2016 fixture
 
Flour Mills Management System
Flour Mills Management SystemFlour Mills Management System
Flour Mills Management System
 
Exposicion informatica
Exposicion informaticaExposicion informatica
Exposicion informatica
 
2016_ClinicalSchoolsWithPlymouthUniversity_LATOUR
2016_ClinicalSchoolsWithPlymouthUniversity_LATOUR2016_ClinicalSchoolsWithPlymouthUniversity_LATOUR
2016_ClinicalSchoolsWithPlymouthUniversity_LATOUR
 
13A Alex Nielson
13A Alex Nielson13A Alex Nielson
13A Alex Nielson
 
Tecnologia e imprenditorialità
Tecnologia e imprenditorialitàTecnologia e imprenditorialità
Tecnologia e imprenditorialità
 

Semelhante a Python & Spark

빅데이터, big data
빅데이터, big data빅데이터, big data
빅데이터, big dataH K Yoon
 
The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)
The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)
The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)SANG WON PARK
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorialMinho Kim
 
[Td 2015]microsoft 개발자들을 위한 달콤한 hadoop, hd insight(최종욱)
[Td 2015]microsoft 개발자들을 위한 달콤한 hadoop, hd insight(최종욱)[Td 2015]microsoft 개발자들을 위한 달콤한 hadoop, hd insight(최종욱)
[Td 2015]microsoft 개발자들을 위한 달콤한 hadoop, hd insight(최종욱)Sang Don Kim
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스NAVER D2
 
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라MinKyu Kim
 
5. 솔루션 카달로그
5. 솔루션 카달로그5. 솔루션 카달로그
5. 솔루션 카달로그Terry Cho
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Steve Min
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들Woong Seok Kang
 
20180714 하둡 스터디 종료 보고 및 연구과제 발표자료
20180714 하둡 스터디 종료 보고 및 연구과제 발표자료20180714 하둡 스터디 종료 보고 및 연구과제 발표자료
20180714 하둡 스터디 종료 보고 및 연구과제 발표자료BOMI KIM
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AIJoongi Kim
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습동현 강
 
Real-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataReal-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataTed Won
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해Terry Cho
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos uEngine Solutions
 
클라우드 이야기1 2 20160823-신인철_slideshare
클라우드 이야기1 2 20160823-신인철_slideshare클라우드 이야기1 2 20160823-신인철_slideshare
클라우드 이야기1 2 20160823-신인철_slideshareIn Chul Shin
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Jeongkyu Shin
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴Terry Cho
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoGruter
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoMatthew (정재화)
 

Semelhante a Python & Spark (20)

빅데이터, big data
빅데이터, big data빅데이터, big data
빅데이터, big data
 
The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)
The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)
The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorial
 
[Td 2015]microsoft 개발자들을 위한 달콤한 hadoop, hd insight(최종욱)
[Td 2015]microsoft 개발자들을 위한 달콤한 hadoop, hd insight(최종욱)[Td 2015]microsoft 개발자들을 위한 달콤한 hadoop, hd insight(최종욱)
[Td 2015]microsoft 개발자들을 위한 달콤한 hadoop, hd insight(최종욱)
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
Packer, Terraform, Vault를 이용해 만드는 
재현 가능한 게임 인프라
 
5. 솔루션 카달로그
5. 솔루션 카달로그5. 솔루션 카달로그
5. 솔루션 카달로그
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
 
20180714 하둡 스터디 종료 보고 및 연구과제 발표자료
20180714 하둡 스터디 종료 보고 및 연구과제 발표자료20180714 하둡 스터디 종료 보고 및 연구과제 발표자료
20180714 하둡 스터디 종료 보고 및 연구과제 발표자료
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습
 
Real-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataReal-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured Data
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
 
클라우드 이야기1 2 20160823-신인철_slideshare
클라우드 이야기1 2 20160823-신인철_slideshare클라우드 이야기1 2 20160823-신인철_slideshare
클라우드 이야기1 2 20160823-신인철_slideshare
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 

Python & Spark

  • 1. Python + Spark
 머신러닝을 위한 완벽한 결혼 James Ahn DeepNumbers
  • 3. Algorithm Trading? • 알고리즘 트레이딩은 수학적 계산과 IT 시스템을 이 용해 트레이딩을 하는 것으로 시스템 트레이딩, Algo Trading 혹은 Blackbox 트레이딩이라고 한다. • 알고리즘 트레이딩은 투자은행, 연기금, 헤지펀드, 증권회사등 많은 곳에서 사용되고 있으며, 최근 몇 년사이에는 수학적지식과 IT지식을 가진 개인들도 많이 참여하고 있다.
  • 4. Algorithm Trading의 현재 미국은 2012년 알고리즘 트레이딩 거래량이 85%에 달할만큼 알고리즘 트레이딩은 가파르게 증가
  • 5. 당시의 개발환경 Machine Learning Server i7 4700k, Overclock Memory 32GB 1 SSD, 1 SATA Python + Scikit Data Server MySQLDB 1Gb 처음에는 아래의 환경으로도 즐거울 수 있었다.
  • 6. 문제는 학습시간!!! 머신러닝 모델들을 학습시키는데 대략 1주일정도의 시간이 소요되었다.!!!
  • 7. 머신러닝 지식이 늘어남에 따라 모델증가 잔기술이 증가하니, 자연스럽게 많은 모델들이 생겨나고 학습시간이 비약적으로 증가하였다!!! 시간이 지날수록 더욱 잡다한 모델들이 생겨날 것으로 강력하게 예상된다.
  • 9. Powered By Celery & RSync Celery를 이용한 작업의 분산 그리고 Rsync를 이용한 결과 파일의 업데이트 Celery = Distributed Async Task Queue 긴 실행시간을 필요로 하는 작업 백그라운드로 실행할 필요가 있는 작업 주기적으로 실행할 필요가 있는 작업
  • 10. 개선된 개발환경 ML Master Celery RabbitMQ Data Server MySQLDB 2대의 서버를 구입하고, Celery를 이용한 머신러닝 학습 분산 실시를 하였다. ML Slave ML Slave Rsync를 이용한 결과물 동기화
  • 11. 학습시간이 짧아졌다. 7일 2일 총 3대의 서버를 이용해 학습을 시키니 시간이 단축되었다. 당연하게도 …
  • 13. First Trial의 가벼움 ML Slave ML Slave ML Slave 직접 할당 • 리소스관리의 어려움 • 노드 확장성의 문제 • 아키텍쳐의 문제 • 생각보다 까다로운 Celery • 데이터 공유 문제 미친듯이 많은 모델들을 실시간으로 생성할 수 있는 뭔가 보다 세련된 방법이 필요하다!!! SSH Execution?
  • 14. 내가 필요한 것! Data #1 Data #2 Data #N Data Store Model #1 Model #2 Model #N Prediction 학습에서 최종모델 배포까지 1-2시간이내 완료!!! aggregation training deployment
  • 15. 좀 더 구체적으로 표현하면 • 다양한 종류의 데이터 소스 사용 • 실시간 데이터 분석 및 학습 • 대용량 데이터 처리 기능 • 학습종료된 모델의 실시간 배치 • 머신러닝 노드 클러스터 확장 • 보다 효율적인 리소스 활용 • 머신러닝 클러스터 관리의 편리함 • Docker 연동 • 기타등등
  • 16. Apache Mesos + Spark
  • 17. Apache Spark • Speed • Up to 100x faster than hadoop • Ease of Use • Python, Scala, Java, R • Generality • Combine SQL, streaming, analytics • Runs Everywhere • Mesos, Hadoop, Standalone • HDFS, Cassandra, Hbase, S3 Lightning fast cluster computing Fast and scalable general data processing framework
  • 18. Apache Mesos • Linear Scalability • Two Level Scheduling • High Availability • APIs • Pluggable Isolation • Resource Management • Supports Spark, Hadoop, Kafaa, ElasticSearch A Distributed System Kernel abstracts CPU, memory, storage, and other compute resources away from machines, enabling fault-tolerant and elastic distributed systems
  • 19. Running Spark in Mesos Client Mode Cluster Mode • 명령을 실행하는 머신에서 직접 실행 • spark-env.sh에 설정 필요 • MESOS_NATIVE_JAVA_LIBRARY • SPARK_EXECUTOR_URI • Mesos에 의해 태스크가 실행됨 • MesosClusterDispatcher 를 실행시켜야 함 • Spark-submit 을 이용해 실행 • 실행파일을 클러스터에서 액세스 가능하도록 설정
  • 20. Mesos Run Modes Fine-grained Coarse-grained • 메모리는 정적으로 할당받지만 CPU는 공유함 • 다른 태스크의 상황에 따라 성능이 변화됨 • conf.set("spark.mesos.coarse", "false") • 메모리와 CPU를 모두 정적으로 할당받음 • 아래의 값들에 의해 할당됨 • spark.executor.memory
 spark.executor.cores • Spark.cores.max/spark.executor.cores • conf.set("spark.mesos.coarse", ”true")
  • 21. Python Library Management Egg or Zip Configuration Tool • Python 필요한 라이브러리를 egg or zip 파일로 만 들어 pyFiles에 추가해 배포할 수 있음 • 실행하려고 할 때마다 매번 라이브러리 배포 • Ansible, puppet, chef와 같은 도구를 이용해 필요 한 라이브러리를 설치할 수 있음 • 태스크 실행시 라이브러리는 포함하지 않음
  • 22. Hadoop이 필요할까? • 머신러닝만 생각하면 굳이 필요는 없었지 만 … • Distributed File System • Disaster Recovery • Hadoop Ecosystem
  • 23. spark-submit, 보다 세련된 뭔가가 필요해 ./bin/spark-submit --class SimpleApp -- master mesos://dev-goose:7077 --deploy- mode cluster simple-project_2.10-1.0.jar REST API based Job Server
  • 24. Spark Job Server • "Spark as a Service": Simple REST interface (including HTTPS) for all aspects of job, context management • Support for Spark SQL, Hive, Streaming Contexts/jobs and custom job contexts! See Contexts. • LDAP Auth support via Apache Shiro integration • Works with Standalone Spark as well as Mesos and yarn-client • Named Objects (such as RDDs or DataFrames) to cache and retrieve RDDs or DataFrames by name, improving object sharing and reuse among jobs. https://github.com/spark-jobserver/spark-jobserver
  • 25. 현재의 머신러닝 클러스터 ML Slave 1 ML Slave 2 ML Slave 3 ML Slave 4 ML MasterSpark Job Server Hadoop
  • 26. Before vs After • 노드추가가 편해졌음 • Mesos Slave, Hadoop 설정만으로 OK • Streaming 처리가 가능해진 환경 • Online Learning을 시도할 수 있게 되었음 • Dataframe이 RDD보다 성능이 더욱 좋음. • Celery보다는 안정적인 환경 • 극적인 시간단축의 핵심은 머신러닝 알고리즘 • Tensorflow를 Spark에서 • 대규모의 데이터를 이용한 학습이 가능해짐
  • 27. Performance? • Machine Learning Library • Hyper-Parameter Optimization • Machine Learning Models • Dataframe • Money 5 Things To Remember