SlideShare uma empresa Scribd logo
1 de 24
what is spark
빅데이터 분석의 시초
GFS(Google File System) 논문(2003)
여러 컴퓨터를 연결하여 저장용량과 I/O성능을 Scale
이를 구현한 오픈소스 프로젝트 : Hadooop HDFS
MapReduce 논문(2003)
Map과 Reduce연산을 조합하여 클러스터에서 실행, 큰 데이터를 처리
이를 구현한 오픈소스 프로젝트 : Hadoop MapReduce
Hadoop
Hadoop 2
빅데이터 분석의 시초(2)
Hive
MapReduce 코드를 짜는 건 괴롭다.
쿼리로 MapReduce의 거의 모든 기능을 표현
HDFS등에 있는 파일을 읽어들여 쿼리로 분석 수행
HiveQL을 작성하면 MapReduce 코드로 변환되어 실행
MapReduce/Hive 장단점
장점
빅데이터 시대를 열어준 선구적인 기술
거대한 데이터를 안정적으로 처리
많은 사람들이 사용중
단점
오래된 기술.
발전이 느림
불편한 점이 많음
MapReduce의 문제점
MapReduce는 Map의 입출력 및 Reduce의 입출력은 매번 HDFS에 쓰고 읽는다.
→ 느리다.
MapReduce 코드는 작성하기 불편하다.
→ 좀더 좋은 인터페이스가 필요
Spark
Apache Spark is a powerful open source processing engine buit around speed,
ease of use, and sophisticated analytics.
keywords
open source
processing engine
speed
ease of use
sophisticated analytics
Spark
SPARK = RDD + Interface
why RDD need?
MapReduce의 약점
더 복잡하고, multi-stage한 처리
interactive하고 ad-hoc한 쿼리
위와 같은 부분을 해결하고자 함
하드에 쓰는것 보단, 메모리에 쓰면 빠르겠다.
쿼리를 할때 마다 하드에서 읽어 오지 않고, 램에 올려 놓고 그 다음에 쿼리를 날리면 빠름.
RAM
RAM : Random Access Memory
Read/Write가 자유로움
→Read Only로 제한
→ 데이타 변환은 어떻게?
스파크 데이타 변환
RDD
Read only Memory +
DAG(데이타 변환 계보) +
Lazy Execution
→ fault-tolerant & efficient 한 RAM 저장소 생성
SPARK 확장
지원언어: scala, java, python,R
SLQ 연동 : Spark SQL
기계학습 : MLlib, GraphX
Spark 설치
다운로드 : http://spark.apache.org/
설치
윈도우 :http://hopers.tistory.com/entry/%EC%8A%A4%ED%8C%8C%ED%81%AC-
%EC%84%A4%EC%B9%98-on-windows
azure : https://azure.microsoft.com/ko-kr/documentation/articles/hdinsight-apache-spark-zeppelin-notebook-
jupyter-spark-sql/
linux : http://gorakgarak.tistory.com/374
mac : not support. ( oracle java 1.8 jni issue )
Spark 설치 2
단순하게…
java 설치(없다면, 설치후 java_home 셋팅 필요)
stand alone mode
spark 배포판 다운로드(hadoop라이브러리가 있다면 하두 없는 버젼)
압축 풀고, 해당 경로의 conf로 이동.
spark-env.sh.template 복사 spark-env.sh
spark-env.sh 수정
“SPARK_MASTER_IP=localhost” 추가
Spark 설치3
cluster 모드
ssh key 배포
ssh-keygen 실행
master 컴퓨터의 ~/.ssh/id_rsa.pub 파일을 각각의 클라이언트 컴퓨터의 ~/.ssh/authorized_keys에 추가.
spark 압축 해제 폴더에서 conf로 이동
클라이언트 설정 : slaves.template 복사 slaves, 노드를 구성하는 모든 컴퓨터의 ip입력.
spark-env.sh.template 복사 spark-env.sh 다음 사항 설정
SPARK_MASTER_IP = master IP
SPARK_MASTER_PORT = 7077
위의 모든 항목을 노드내의 모든 컴퓨터에 동일하게 설정.
SPARK 실행
환경변수 설정
export SPARK_HOME={$SPARK_HOME}
cluster 모드
실행
{$SPARK_HOME}/sbin/start-all.sh
중지
{$SPARK_HOME}/sbin/stop-all.sh
scala console 실행
{$SPARK_HOME}/bin/spark-shell.sh
python console 실행
{$SPARK_HOME}/bin/pysaprk
R console 실행
{$SPARK_HOME}/bin/sparkR
SPARK cluster mode
실행: {$SPARK_HOME}/bin/start.sh
web console : http://SPARK_MASTER:8080
ipython for Spark
ipython notebook에서 python spark를 이용해 보자.
1. 환경 설정
python 설치.(anaconda 같은 통합 패키지가 정신 건강
에 좋음^^)
2. 환경 변수 설정
export IPYTHON_OPTS=”notebook --notebook-
dir=<notebook dir>”
export PYSPARK_PYTHON=”<python
binpath>/python”
export PYSPARK_SUBMIT_ARGS=”--master
spark://SPARK_MASTER_IP:PORT pyspark-shell”
3. 실행
${SPARK_HOME}/bin/pyspark
http://SPARK_MASTER_IP:8888/ 접속
scala ipython for SPARK
ipython에서 python으로 spark 쓰면 좋은데…
ipython에서 scala로 spark이용 가능할까?
→ https://github.com/tribbloid/ISpark
설정 방법
ipython에 kernel을 추가.
.ipython/kernels/ispark 디렉토리를 추가,
우측 그림과 같이 설정
Zeppeline!
https://zeppelin.incubator.apache.org/
SPARK를 지원, 시각화/개발 도구.
설치 방법
http://www.slideshare.net/sangwookimme/zeppelinspark-
41329473
개발 팁
spark rest job client
https://github.com/ywilkof/spark-jobs-rest-client
SPARK 서버는 내부적으로 REST Server를 내장.
이 REST Server을 통해 spark 동작 시킴.
주요 설정
외부 jar 사용하기(주로 jdbc)
driver 실행시 추가 : -Dspark.driver.extraClassPath = “jar 경로”
executor 실행시 추가 : -Dspark.executor.extraClassPath=”jar 경로"
core제한
-Dspark.cores.max=”max” -1 이 설정이 없을 경우 클라우드 모드에서 가용한 모든 코어를 투입
메모리 크기 설정
-Dspark.executor.memory=”memory size”

Mais conteúdo relacionado

Mais procurados

[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기NAVER D2
 
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인Seunghwa Song
 
[D2]thread dump 분석기법과 사례
[D2]thread dump 분석기법과 사례[D2]thread dump 분석기법과 사례
[D2]thread dump 분석기법과 사례NAVER D2
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine LearningJEEHYUN PAIK
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅NAVER D2
 
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & SparkDeep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Sparkhoondong kim
 
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스Seunghwa Song
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012Esun Kim
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템NAVER D2
 
[264] large scale deep-learning_on_spark
[264] large scale deep-learning_on_spark[264] large scale deep-learning_on_spark
[264] large scale deep-learning_on_sparkNAVER D2
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기Sang Heon Lee
 
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현NAVER D2
 
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)Tae Young Lee
 
Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러Heungsub Lee
 
Introduction to Parallel Programming
Introduction to Parallel ProgrammingIntroduction to Parallel Programming
Introduction to Parallel ProgrammingUNIST
 
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Ki-Hwan Kim
 
[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성NAVER D2
 
분산저장시스템 개발에 대한 12가지 이야기
분산저장시스템 개발에 대한 12가지 이야기분산저장시스템 개발에 대한 12가지 이야기
분산저장시스템 개발에 대한 12가지 이야기NAVER D2
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기Jaeseung Ha
 
Python on Android
Python on AndroidPython on Android
Python on Android용 최
 

Mais procurados (20)

[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
 
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
이기종 멀티코어 기반의 Open cv 응용 사례 및 효율적인 어플리케이션 디자인
 
[D2]thread dump 분석기법과 사례
[D2]thread dump 분석기법과 사례[D2]thread dump 분석기법과 사례
[D2]thread dump 분석기법과 사례
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
 
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & SparkDeep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
 
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템
 
[264] large scale deep-learning_on_spark
[264] large scale deep-learning_on_spark[264] large scale deep-learning_on_spark
[264] large scale deep-learning_on_spark
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기
 
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
 
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
 
Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러
 
Introduction to Parallel Programming
Introduction to Parallel ProgrammingIntroduction to Parallel Programming
Introduction to Parallel Programming
 
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
 
[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성
 
분산저장시스템 개발에 대한 12가지 이야기
분산저장시스템 개발에 대한 12가지 이야기분산저장시스템 개발에 대한 12가지 이야기
분산저장시스템 개발에 대한 12가지 이야기
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
 
Python on Android
Python on AndroidPython on Android
Python on Android
 

Semelhante a 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 HadoopSeungYong Baek
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래NAVER D2
 
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지위키북스
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampSang-bae Lim
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습동현 강
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
 
Spark performance tuning
Spark performance tuningSpark performance tuning
Spark performance tuninghaiteam
 
Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Keeyong Han
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)Ildoo Kim
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처Sunggon Song
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습동현 강
 
Hadoop 제주대
Hadoop 제주대Hadoop 제주대
Hadoop 제주대DaeHeon Oh
 
Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기SangWoo Kim
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기Huey Park
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기SeungYong Baek
 
올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발cho hyun jong
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 

Semelhante a What is spark (20)

하둡 알아보기(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
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcamp
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 
Spark performance tuning
Spark performance tuningSpark performance tuning
Spark performance tuning
 
Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습
 
Hadoop 제주대
Hadoop 제주대Hadoop 제주대
Hadoop 제주대
 
Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
Hadoop administration
Hadoop administrationHadoop administration
Hadoop administration
 
Start spark
Start sparkStart spark
Start spark
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 

What is spark

  • 2. 빅데이터 분석의 시초 GFS(Google File System) 논문(2003) 여러 컴퓨터를 연결하여 저장용량과 I/O성능을 Scale 이를 구현한 오픈소스 프로젝트 : Hadooop HDFS MapReduce 논문(2003) Map과 Reduce연산을 조합하여 클러스터에서 실행, 큰 데이터를 처리 이를 구현한 오픈소스 프로젝트 : Hadoop MapReduce
  • 5. 빅데이터 분석의 시초(2) Hive MapReduce 코드를 짜는 건 괴롭다. 쿼리로 MapReduce의 거의 모든 기능을 표현 HDFS등에 있는 파일을 읽어들여 쿼리로 분석 수행 HiveQL을 작성하면 MapReduce 코드로 변환되어 실행
  • 6. MapReduce/Hive 장단점 장점 빅데이터 시대를 열어준 선구적인 기술 거대한 데이터를 안정적으로 처리 많은 사람들이 사용중 단점 오래된 기술. 발전이 느림 불편한 점이 많음
  • 7. MapReduce의 문제점 MapReduce는 Map의 입출력 및 Reduce의 입출력은 매번 HDFS에 쓰고 읽는다. → 느리다. MapReduce 코드는 작성하기 불편하다. → 좀더 좋은 인터페이스가 필요
  • 8. Spark Apache Spark is a powerful open source processing engine buit around speed, ease of use, and sophisticated analytics. keywords open source processing engine speed ease of use sophisticated analytics
  • 9. Spark SPARK = RDD + Interface why RDD need? MapReduce의 약점 더 복잡하고, multi-stage한 처리 interactive하고 ad-hoc한 쿼리 위와 같은 부분을 해결하고자 함
  • 10. 하드에 쓰는것 보단, 메모리에 쓰면 빠르겠다.
  • 11. 쿼리를 할때 마다 하드에서 읽어 오지 않고, 램에 올려 놓고 그 다음에 쿼리를 날리면 빠름.
  • 12. RAM RAM : Random Access Memory Read/Write가 자유로움 →Read Only로 제한 → 데이타 변환은 어떻게?
  • 14. RDD Read only Memory + DAG(데이타 변환 계보) + Lazy Execution → fault-tolerant & efficient 한 RAM 저장소 생성
  • 15. SPARK 확장 지원언어: scala, java, python,R SLQ 연동 : Spark SQL 기계학습 : MLlib, GraphX
  • 16. Spark 설치 다운로드 : http://spark.apache.org/ 설치 윈도우 :http://hopers.tistory.com/entry/%EC%8A%A4%ED%8C%8C%ED%81%AC- %EC%84%A4%EC%B9%98-on-windows azure : https://azure.microsoft.com/ko-kr/documentation/articles/hdinsight-apache-spark-zeppelin-notebook- jupyter-spark-sql/ linux : http://gorakgarak.tistory.com/374 mac : not support. ( oracle java 1.8 jni issue )
  • 17. Spark 설치 2 단순하게… java 설치(없다면, 설치후 java_home 셋팅 필요) stand alone mode spark 배포판 다운로드(hadoop라이브러리가 있다면 하두 없는 버젼) 압축 풀고, 해당 경로의 conf로 이동. spark-env.sh.template 복사 spark-env.sh spark-env.sh 수정 “SPARK_MASTER_IP=localhost” 추가
  • 18. Spark 설치3 cluster 모드 ssh key 배포 ssh-keygen 실행 master 컴퓨터의 ~/.ssh/id_rsa.pub 파일을 각각의 클라이언트 컴퓨터의 ~/.ssh/authorized_keys에 추가. spark 압축 해제 폴더에서 conf로 이동 클라이언트 설정 : slaves.template 복사 slaves, 노드를 구성하는 모든 컴퓨터의 ip입력. spark-env.sh.template 복사 spark-env.sh 다음 사항 설정 SPARK_MASTER_IP = master IP SPARK_MASTER_PORT = 7077 위의 모든 항목을 노드내의 모든 컴퓨터에 동일하게 설정.
  • 19. SPARK 실행 환경변수 설정 export SPARK_HOME={$SPARK_HOME} cluster 모드 실행 {$SPARK_HOME}/sbin/start-all.sh 중지 {$SPARK_HOME}/sbin/stop-all.sh scala console 실행 {$SPARK_HOME}/bin/spark-shell.sh python console 실행 {$SPARK_HOME}/bin/pysaprk R console 실행 {$SPARK_HOME}/bin/sparkR
  • 20. SPARK cluster mode 실행: {$SPARK_HOME}/bin/start.sh web console : http://SPARK_MASTER:8080
  • 21. ipython for Spark ipython notebook에서 python spark를 이용해 보자. 1. 환경 설정 python 설치.(anaconda 같은 통합 패키지가 정신 건강 에 좋음^^) 2. 환경 변수 설정 export IPYTHON_OPTS=”notebook --notebook- dir=<notebook dir>” export PYSPARK_PYTHON=”<python binpath>/python” export PYSPARK_SUBMIT_ARGS=”--master spark://SPARK_MASTER_IP:PORT pyspark-shell” 3. 실행 ${SPARK_HOME}/bin/pyspark http://SPARK_MASTER_IP:8888/ 접속
  • 22. scala ipython for SPARK ipython에서 python으로 spark 쓰면 좋은데… ipython에서 scala로 spark이용 가능할까? → https://github.com/tribbloid/ISpark 설정 방법 ipython에 kernel을 추가. .ipython/kernels/ispark 디렉토리를 추가, 우측 그림과 같이 설정
  • 23. Zeppeline! https://zeppelin.incubator.apache.org/ SPARK를 지원, 시각화/개발 도구. 설치 방법 http://www.slideshare.net/sangwookimme/zeppelinspark- 41329473
  • 24. 개발 팁 spark rest job client https://github.com/ywilkof/spark-jobs-rest-client SPARK 서버는 내부적으로 REST Server를 내장. 이 REST Server을 통해 spark 동작 시킴. 주요 설정 외부 jar 사용하기(주로 jdbc) driver 실행시 추가 : -Dspark.driver.extraClassPath = “jar 경로” executor 실행시 추가 : -Dspark.executor.extraClassPath=”jar 경로" core제한 -Dspark.cores.max=”max” -1 이 설정이 없을 경우 클라우드 모드에서 가용한 모든 코어를 투입 메모리 크기 설정 -Dspark.executor.memory=”memory size”