Apache Spark 설치

1) 필수 요건

- 스파크 자체는 스칼라로 만들어졌으며, 자바 가상 머신(JVM) 위에서 동작함. 그렇기 때문에 자바가 설치가 되어 있어야 됨 (자바에 대한 설치는 별도로 언급 x)


2) Download (http://spark.apache.org/downloads.html)

- 현재 기준(‘17.04.03) 2.1.0 이 최신 버전

- 1,2,3을 선택하고 4번을 누르면 타르볼 파일 설치됨

- 설치는 ubuntu 환경에서 진행하였음



- $tar -xf <spark_file_tgz>


3) pyspark 실행  (Ipython 실행시 : IPYTHON=1 ./bin/pyspark,   Notebook 사용시: IPYTHON_OPTS=“notebook” ./bin/pyspark

- 로그는 현재 Warning 만 나오게끔 되어 있는데, INFO 등 변경이 가능함


- python2.0부터 IPYTHON=1이 바뀜 


- PYSPARK_DRIVER_PYTHON=ipython ./bin/pyspark   or 또는 환경변수를 설정해주는 방법이 있음 

$ export PYSPARK_DRIVER_PYTHON=ipython

$./bin/pyspark)

설치가 된 화면이다.



'기타 > 분산 컴퓨팅' 카테고리의 다른 글

Spark Pair RDD 개념  (0) 2017.04.07
Spark RDD 개념 및 예제  (0) 2017.04.07
Apache Spark란 무엇인가?  (0) 2017.04.07
아파치 하둡 맵리듀스  (0) 2017.04.01
아파치 하둡 HDFS 사용법(Cloudera 사용)  (0) 2017.03.31

본 내용은 러닝스파크 책을 참고하였음.


Apache Spark?


- Apache Spark 범용적이면서도 빠른 속도로 작업을 수행할 수 있도록 설계한 클러스터용 연산 플랫폼


(속도 측면)

- 맵리듀스 모델을 대화형 명령어 쿼리나 스트리밍 처리 등이 가능하도록 확대

- 속도를 높이기 위해 연산을 메모리에서 수행하도록 함. , 복잡한 프로그램을 디스크에서 돌리더라도 맵리듀스

보다 뛰어난 성능

(범용적 측면)

- 스파크는 기존에 각각 분리된 분산 시스템에서 돌아가던 배치 어플리케이션, 반복 알고리즘, 대화형 쿼리, 스트

리밍 같은 다양한 작업 타입을 동시에 커버할 수 있도록 설계

-> 이런 워크로드들을 단일 시스템에서 지원하게 됨에 따라 스파크는 실제의 데이터 분석 파이프라인에서도 서로 다른 형태의 작업을 쉽고 저비용으로 연계 가능하게 함

- 스파크는 고수준에서 접근하기 쉽게 설계되어 있어서 파이썬, 자바, 스칼라, SQL API 및 강력한 Lib 내장 지원

-> 특히 하둡 클러스터 위에서도 실행 가능하며, 카산드라를 포함하는 어떠한 하둡 데이터 소스에도 접근 가능


- 맵리듀스가 반복적인 대화형 연산 작업에는 비효율적이라는 것을 발견

-> 스파크는 시작부터 인메모리 저장 장치 및 효과 적인 장애 복구 지원 같은 개념에 기반하여 대화형 쿼리와, 반복성 알고리즘에 빠르게 동작하도록 설계


Apache Spark 구성요소

- Spark는 다수의 작업 머신이나 클러스터 위에 돌아가는 많은 연산 작업 프로그램을 스케줄링/분배/감시역할 수행



1) Spark Core

- 작업 스케줄링, 메모리 관리, 장애 복구, 저장 장치와의 연동 등 기본 기능들로 구성

- RDD(Resilient Distributed Dataset)를 정의하는 API의 기반이 되며, 이것이 주된 스파크 프로그래밍 추상화 구조

-> RDD 는 여러 컴퓨터 노드에 흩어져 있으면서 병렬 처리 될 수 있는 아이템들의 모음을 표현


2) Spark SQL (Spark 1.0부터 지원)

- 정형 데이터를 처리하기 위한 패키지 (Hive 테이블, Parquet, JSON 등 다양한 데이터 소스 지원)


3) Spark Streaming

- 실시간 데이터 스트림을 처리 (로그 파일, 메시지 Queue 등 포함)


4) Mllib

- 다양한 머신 러닝 알고리즘 지원 (Classification, Regression, Clustering, Collaborative Filtering )

- Gradient Descent 최적화 알고리즘 같은 저수준의 ML 또한 지원


5) Graph X

- 그래프를 다루기 위한 라이브러리


6) Cluster Manager

- 노드에서 수천 노드까지 효과적으로 성능을 확장할 수 있도록 만들어짐

- 이를 달성하기 위해 Yarn, Apache Mesos, 스파크에서 지원하는 가벼운 구현의 단독 스케줄러 등 다양한 Cluster Manager위에서 동작 

'기타 > 분산 컴퓨팅' 카테고리의 다른 글

Spark RDD 개념 및 예제  (0) 2017.04.07
Apache Spark 설치  (0) 2017.04.07
아파치 하둡 맵리듀스  (0) 2017.04.01
아파치 하둡 HDFS 사용법(Cloudera 사용)  (0) 2017.03.31
아파치 하둡 소개  (0) 2017.03.31

가끔 $sudo apt-get update를 할 때

아래 메시지가 발생할 때가 있다. (우분투 14.04기준)


Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)


간단하다.


$sudo rm /var/lib/apt/lists/* -vf

$sudo apt-get update


+ Recent posts