스파크 임시

NLP 2018. 4. 18. 17:54

모든 스파크 애플리케이션은 클러스터에서 다양한 병렬 연산을 수행하는 드라이버 프로그램으로 구성되어있다.


드라이버 프로그램들은 연산 클러스터에 대한 연결을 나타내는 SparkContext 객체를 통해 스파크에 접속한다.

쉘에서 이 SparkContext 객체는 자동으로 sc라는 변수에 만들어진다.


SparkContext 객체를 하나 만들었다면 그것으로 RDD를 만들어 낼 수 있다.

전 포스트에서 쓴 코드를 보면 텍스트파일 각 라인을 표현하는 RDD를 만들기 위해

sc.textFile()을 호출했었다. 그러고 나면 그 라인에 count() 같은 다양한 연산을 수행해 볼 수 있다.


이런 연산들을 수행하기 위해 드라이버 프로그램들은 보통 Executor(익스큐터)라 불리는 다수의 노드를 관리한다.




위의 사진은 스파크의 분산 실행을 위한 컴포넌트의 모양새이다 (출처: 러닝 스파크)


스파크가 클러스터에서 어떻게 실행되는지 알 수 있다.

'NLP' 카테고리의 다른 글

Spark RDD란 무엇인가?  (923) 2018.04.18
Spark를 설치 실행해보자  (934) 2018.04.18
파이썬으로 텍스트 마이닝 하기 (쓰는중..)  (1347) 2018.04.16
블로그 이미지

ZeroFlag

,

Spark RDD란 무엇인가?

NLP 2018. 4. 18. 16:23

RDD란 무엇인가?


R(Resilient)

D(Distributed)

D(Dataset)


R <- 데이터 손실 문제발생 시 다시 생성할 수 있다. (유실된 파티션을 재연산해 복구한다)

D <- 메모리를 이용하여 분산처리를 한다.

D <- 파일을 통해 가져올 수 있는 데이터셋 제공


따라서 Spark에서 제공하는 RDD라는 놈은 Spark에서 기본적인 데이터 단위라고 볼 수 있다.

(분산되어 있는 컬렉션)



자 그럼 RDD를 생성하여 보자


Spark QuickStart 에서보면 예제가 바로 나온다.


자 그럼 스파크를 실행시키고 예제를 한줄 한줄 입력하여 어떠한 결과가 나오는지 알아보자


# lines라는 RDD를 README.md 파일을 가져와서 만든다. (txtFile)

Scala : val lines = sc.textFile("README.md")

Python : lines = sc.textFile("README.md")

-출력결과 --> lines: org.apache.spark.rdd.RDD[String] = README.md MapPartitionsRDD[1] at textFile at <console>:24


# lines에 할당된 아이템의 갯수를 센다.

Scala : lines.count()

Python : lines.count()

-출력결과 --> res0: Long = 103


# lines에 있는 첫번째 라인에 해당하는 아이템을 불러온다.

Scala : lines.first()

Python : lines.first()

-출력결과 --> res1: String = # Apache Spark


! : 스파크 쉘이 구동될때 자동으로

SparkContext 생성후 sc라는 변수에 할당을 해준다.


그래서 sc를 직접 선언하지않고 사용할 수 있다.

sc변수가 어떻게 선언되었는지 알고싶으면 터미널에 sc를 입력하면 알 수 있다.

-출력결과 --> res2: org.apache.spark.SparkContext = org.apache.spark.SparkContext@69ed96e1



'NLP' 카테고리의 다른 글

스파크 임시  (1378) 2018.04.18
Spark를 설치 실행해보자  (934) 2018.04.18
파이썬으로 텍스트 마이닝 하기 (쓰는중..)  (1347) 2018.04.16
블로그 이미지

ZeroFlag

,

1. Spark 다운로드 하기


http://spark.apache.org/downloads.html


위 주소를 브라우저 주소창에 입력한다.



위와 같은 창이 뜬다면 맞게 들어온 것이다.


보면 1,2,3,4 단계로 나뉘는데

3단계 까지만 하면 된다.


1. 자신이 원하는 스파크의 버전을 나타낸다.

   콤보 박스 형태이기 때문에 마우스로 클릭해서 고를 수 있다.


2. 같이 설치할 하둡의 버전을 나타낸다

    마찬가지로 콤보 박스 형태로나온다.


3. 선택이 끝나면 3번에 있는 파란색 텍스트를 클릭하면 다운로드 페이지로 넘어가게 된다.




이런 페이지가 뜨는데 맨 위 미러링크를 클릭하면 파일을 다운로드 하게 된다.



2. 스파크 압축풀기


다운르드가 완료되면 spark-2.3.0-bin-hadoop2.7.taz 라는 파일이 생성되어 있을 것이다.


맥일 경우 대부분 다운로드에 저장이되는데 다운로드 파일을 자신이 지정한 디렉토리로 옮겨주면 된다.


필자는 다운로드후 바탕화면에 Spark 라는 디렉토리를 생성하여 옮겨주었다.


그리고 압축을 풀어준다.


압축을 풀어주는 방법은 간단한데 


tar -xf spark-2.3.0-bin-hadoop2.7.tgz


위의 명령어를 입력하면 쉽게 압축이 풀릴 것이다.


압축을 풀고나면 ls 명령어를 통해 파일들이 멀쩡하게 있는지 확인해보자


LICENSE README.md conf jars python

NOTICE RELEASE data kubernetes sbin

R bin examples licenses yarn


이런식으로 나타난다면 정상이다.



3. 스파크를 실행해보자


스파크는 Scala 또는 Python을 사용하여 실행할 수 있다.

(만일 현재 보고있는 경로가 압축을 풀고난 디렉토리가 아닐경우 경로를 이동해주어라)

(명령어 : cd spark-2.3.0-bin-hadoop2.7 을 입력하면 된다.)


파이썬을 이용한 쉘을 열려면

bin/pyspark


Scala를 이용한 쉘을 열려면

bin/spark-shell


실행후의 화면



이렇게 뜬다면 정상적으로 실행된것이다.

'NLP' 카테고리의 다른 글

스파크 임시  (1378) 2018.04.18
Spark RDD란 무엇인가?  (923) 2018.04.18
파이썬으로 텍스트 마이닝 하기 (쓰는중..)  (1347) 2018.04.16
블로그 이미지

ZeroFlag

,