Docker를 이용한 Apache Spark 설치 방법
Site Link
공식 페이지 - https://spark.apache.org/
Apache Spark™ - Unified Analytics Engine for Big Data
Ease of Use Write applications quickly in Java, Scala, Python, R, and SQL. Spark offers over 80 high-level operators that make it easy to build parallel apps. And you can use it interactively from the Scala, Python, R, and SQL shells.
spark.apache.org
다운로드 페이지 - https://spark.apache.org/downloads.html
Downloads | Apache Spark
Download Apache Spark™ Choose a Spark release: Choose a package type: Download Spark: Verify this release using the and project release KEYS. Note that, Spark is pre-built with Scala 2.11 except version 2.4.2, which is pre-built with Scala 2.12. Latest Pre
spark.apache.org
Install
Docker Image를 만들어 Spark를 설치한다. 설치는 2.4.4(Aug 30 2019) 버전으로 한다.
Download and Run OS
먼저 최신 CentOS Docker Image를 다운받기 위해 다음의 명령을 입력한다.
$ docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5749 [OK]
가장 위의 Official Image를 다운로드 받는다.
$ docker pull centos
Using default tag: latest
latest: Pulling from library/centos
729ec3a6ada3: Pull complete
Digest: sha256:f94c1d992c193b3dc09e297ffd54d8a4f1dc946c37cbeceb26d35ce1647f88d9
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0f3e07c0138f 3 months ago 220MB
아래 명령을 입력해 Container를 생성하고 Container에 접속되는 것을 확인한다.
$ docker run -itd --name spark-test centos /bin/bash
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3bef1b244133 centos "/bin/bash" About a minute ago Up About a minute spark-test
$ docker exec -it spark-test /bin/bash
Install Utilities & Dependencies
wget
웹 서비스로부터 컨텐츠를 가져오기 위한 프로그램인 wget을 설치한다.
$ yum list wget
$ yum install -y wget
python
공식 페이지 -https://www.python.org/
Welcome to Python.org
The official home of the Python Programming Language
www.python.org
다운로드 페이지 - https://www.python.org/downloads/
Download Python
The official home of the Python Programming Language
www.python.org
Python을 빌드하기 위한 Depedencies를 설치한다.
$ yum -y groupinstall "Development Tools"
$ yum -y install openssl-devel bzip2-devel libffi-devel
Python은 3.7.x 버전을 설치한다. (3.8은 아직 정상적으로 지원하지 않는 것으로 보인다.)
$ wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz
$ tar -xvzf Python-3.7.6.tgz
$ cd Python-3.7.6
$ ./configure --enable-optimizations
$ make altinstall
$ ln -s /usr/local/bin/python3.7 /usr/bin/python
JAVA
Spark는 스칼라로 구현되었고 스칼라는 JVM에서 동작하기 때문에 Java Runtime이 필요하다. 따라서 JDK를 설치한다. list를 확인하고 적절한 버전을 선택해 설치한다.
$ yum list java*jdk
$ yum install -y java-1.8.0-openjdk.x86_64
Download and Install Spark
Spark를 centos 이미지에 다운로드 받는다. Spark 홈페이지의 다운로드 페이지에 접속해 Spark의 다운로드 링크를 복사한 후 아래와 같이 입력해 다운로드 받고 압축을 푼다.
$ wget http://mirror.apache-kr.org/spark/spark-2.4.4/spark-2.4.4-bin-hadoop2.7.tgz
$ tar -xvzf spark-2.4.4-bin-hadoop2.7.tgz
$ cd spark-2.4.4-bin-hadoop2.7/bin
$ ./pyspark