짱이 될거야
2022-09-16: Hadoop에 Spark 설치하기 본문
Spark를 사용하는 이유
- Spark는 HDFS에 저장된 데이터를 하둡 코어 라이브러리를 호출함으로써 메모리로 불러온 후, 변환 및 계산 등을 거쳐 최종 원하는 결과물을 산출합니다. 스파크는 인메모리 프로세싱을 하기 때문에 Disk I/O 가 많이 일어나는 하둡의 맵-리듀스보다 특정 작업 (ex. multi-pass map reduce)에서는 더 빠르게 수행될 수 있습니다.
- 결론
- Hadoop은 기본적으로 디스크로부터 map/reduce할 데이터를 불러오고, 처리 결과를 디스크로 씁니다. 따라서, 데이터의 읽기/쓰기 속도는 느린 반면, 디스크 용량 만큼의 데이터를 한번에 처리 할 수 있습니다.
- 반면, spark는 메모리로부터 map/reduce할 데이터를 불러오고, 처리 결과를 메모리로 씁니다. 따라서, 데이터의 읽기/쓰기 속도는 빠른 반면, 메모리 용량만큼의 데이터만 한번에 처리 할 수 있습니다.
- 메모리가 커버 가능한 만큼의 데이터라면, 메모리 기반이 유리할 것이고, 메모리 용량 이상의 데이터라면 크면 클수록, 디스크 기반의 유리할 것입니다.
- 또한, 메모리 기반이 속도가 장점인만큼, 기계학습이나 마이닝과 같은 반복 작업이 많을수록 메모리 기반이 유리할 것입니다. (단, 일정 용량 이하의 데이터인 경우에 한합니다.)
Hadoop 위에 Spark 설치해야 하는 이유
Spark를 반드시 하둡과 같이 사용할 필요는 없다.
Spark는 하둡을 지원하기 때문에 하둡이 사용하는 파일 시스템인 HDFS (Hadoop Distributed File System) 의 데이터를 읽어올 수도 있고, 반대로 데이터를 쓸 수도 있다.
https://3months.tistory.com/511
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에 있는 코드와 똑같이 연습해본다.
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
'Today I Learned' 카테고리의 다른 글
2022-09-17(2): Linux에서 py-hanspell 사용하기 (0) | 2022.09.17 |
---|---|
2022-09-17: VMWare(Ubuntu 22.04)에서 한글 사용하기 (0) | 2022.09.17 |
2022-09-15: Python으로 excel 파일 읽고 수정 및 저장 (0) | 2022.09.15 |
2022-09-06: Python 네이버 쇼핑몰 후기 웹 크롤링 1탄 (1) | 2022.09.06 |
2022-09-02: Github 꾸미기 (0) | 2022.09.02 |