Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

짱이 될거야

2022-09-16: Hadoop에 Spark 설치하기 본문

Today I Learned

2022-09-16: Hadoop에 Spark 설치하기

jeong57 2022. 9. 16. 22:03

Spark를 사용하는 이유

  1. Spark는 HDFS에 저장된 데이터를 하둡 코어 라이브러리를 호출함으로써 메모리로 불러온 후, 변환 및 계산 등을 거쳐 최종 원하는 결과물을 산출합니다. 스파크는 인메모리 프로세싱을 하기 때문에 Disk I/O 가 많이 일어나는 하둡의 맵-리듀스보다 특정 작업 (ex. multi-pass map reduce)에서는 더 빠르게 수행될 수 있습니다.
  2. 결론
    • Hadoop은 기본적으로 디스크로부터 map/reduce할 데이터를 불러오고, 처리 결과를 디스크로 씁니다. 따라서, 데이터의 읽기/쓰기 속도는 느린 반면, 디스크 용량 만큼의 데이터를 한번에 처리 할 수 있습니다.
    • 반면, spark는 메모리로부터 map/reduce할 데이터를 불러오고, 처리 결과를 메모리로 씁니다. 따라서, 데이터의 읽기/쓰기 속도는 빠른 반면, 메모리 용량만큼의 데이터만 한번에 처리 할 수 있습니다.
    • 메모리가 커버 가능한 만큼의 데이터라면, 메모리 기반이 유리할 것이고, 메모리 용량 이상의 데이터라면 크면 클수록, 디스크 기반의 유리할 것입니다.
    • 또한, 메모리 기반이 속도가 장점인만큼, 기계학습이나 마이닝과 같은 반복 작업이 많을수록 메모리 기반이 유리할 것입니다. (단, 일정 용량 이하의 데이터인 경우에 한합니다.)

https://wooono.tistory.com/50

 

[Spark] Spark와 Hadoop MapReduce의 차이

SPARK(In-Memory 방식)과 Hadoop MapReduce(분산병렬 처리방식)의 차이 Hadoop은 mapreduce 방식으로 데이터를 분산 처리 합니다. 여러 곳에 분산 저장된 데이터를 처리 하기 위해 mapreduce 방식으로 데이터를 처

wooono.tistory.com

 

Hadoop 위에 Spark 설치해야 하는 이유

Spark를 반드시 하둡과 같이 사용할 필요는 없다.

Spark는 하둡을 지원하기 때문에 하둡이 사용하는 파일 시스템인 HDFS (Hadoop Distributed File System) 의 데이터를 읽어올 수도 있고, 반대로 데이터를 쓸 수도 있다.

https://3months.tistory.com/511

 

하둡과 맵리듀스 스파크의 관계

하둡과 맵리듀스 스파크의 관계  하둡 (Hadoop) https://www.ibmbigdatahub.com/blog/what-hadoop "하둡은 간단한 프로그래밍 인터페이스를 통해 클러스터 환경에서 대용량 데이터에 대한 분산 처리를 하는..

deepplay.kr

 

Spark 설치 단계

1. Hadoop 버전과 맞춰 Spark 다운로드 주소 가져오기

2. Ubuntu를 켜고 아래의 코드를 차례대로 입력

$ cd ~
$ wget https://dlcdn.apache.org/spark/spark-3.2.2/spark-3.2.2-bin-hadoop3.2.tgz
$ tar zxf spark-3.2.2-bin-hadoop3.2.tgz
$ cp -r spark-3.2.2-bin-hadoop3.2 /home/hadoop/spark-3.2.2
$ cd
$ ll

3. vi .bashrc를 통해 .bashrc를 켜고, 맨 아래쪽에 있는 코드를 아래와 같이 작성한다.

# Automatically added
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME="/usr/local/hadoop"
export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"
export PATH=$PATH:$HADOOP_HOME/sbin:~~~~:$FLUME_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin
export SPARK_HOME=/home/hadoop/spark-3.2.2

4. 아래의 코드를 차례대로 입력하면 화면에 Spark 문구가 뜨고, 그러면 설치에 성공한 것이다.

$ source .bashrc
$ echo $SPARK_HOME
$ spark-submit --version

5. spark-env.sh 안에 코드를 추가해야 하는데, 아래와 같이 입력한다.

$ cd spark-3.2.2/conf/
$ cp spark-env.sh.template spark-env.sh
$ vi spark-5. env.sh

 

Spark 실행

1. 먼저 Hadoop을 실행시킨 다음

2. Spark를 실행시켜야 한다.

$ cd ~
$ start-dfs.sh
$ start-yarn.sh
$ jps	# 5개가 나와야 한다. (근데 나는 6개 나왔는데 그래도 괜찮았다.)
$ spark-shell	# spark 설치에 성공했을 때처럼 화면에 Spark 글씨가 크게 나온다.

 

Spark 예제

1. cd ~

2. 폴더를 새로 하나 만들고, word count를 위한 txt 파일을 하나 만든다.

3. 아래 link에 있는 코드와 똑같이 연습해본다.

https://we-co.tistory.com/30

 

[We-Co] Word Count - Spark 예제

안녕하세요. 위기의 코딩맨입니다. 오늘은 Spark를 이요하여 문자를 count 하는 예제 한번 알아보겠습니다.   텍스트 파일 속에 있는 문자열 들을 Count 하기 위해 텍스트 파일을 하나 작성합니다. [

we-co.tistory.com

 

VMWare에 Python 설치하기

1. VMWare에 VSCode를 이용하는데, 매번 위의 예제처럼 한 문장씩 입력할 수는 없기 때문에 실제 python 파일을 만들어서 돌려야 한다.

2. VMWare에서 새 폴더를 하나 만들고 예제 python 파일을 만들었는데, python3가 없다는 에러가 뜨면서 실행되지 않는다.

3. cd ~을 해서 홈 디렉토리로 옮겨간 다음, 아래 코드를 입력해서 python을 설치하면 실행된다.

(참고) python 파일을 실행할 때, 원래는 python ex.py로 해야 하지만 python3 ex.py로 해야 실행된다.

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get upgrade python3
$ pip3 --verseion	# command 'pip3' not found
$ sudo apt install python3-pip
$ sudo pip3 --version
$ python3

 

PySpark

아래는 pyspark를 쓰는 예제이다.

# input.py
import findspark
findspark.init()

import pyspark
from pyspark import SparkConf
from pyspark import SparkContext
from pyspark.sql import SQLContext
sc = pyspark.SparkContext()

# SparkContext version
print("spark Context version: ", sc.version)

# SparkContext python version
print("Spark Context Python version: ", sc.pythonVer)

# SparkContextMaster
print("Spark Context Master: ", sc.master)
$ python3 -m pip install findspark
$ python3 -m pip install pyspark

$ python3 input.py
Comments