아무런 설정을 하지 않고
단순히 우분투 18.04에 spark 실행에 필요한 jdk, spark 추가로 python 만 설치하고
스파크 마스터를 실행시켰을 때를 확인해보자
spark-env.sh 는 스파크 설정 파일인데
해당 파일은 스파크 설치 위치 (나는 /home에 설치를 했다.)
/home/spark/conf/spark-env.sh.templete 파일이 있는데,
뒤에 .templete 만 지우고 스파크 마스터를 실행시켜보자.
작업중인 깃허브는 다음과 같다.
https://github.com/ParkGyeongTae/spark-pgt/tree/main/0_spark
도커파일은 다음과 같다.
FROM ubuntu:18.04
LABEL maintainer "ParkGyeongTae"
# apt 설치시 입력요청 무시
ENV DEBIAN_FRONTEND=noninteractive
# apt 미러서버 미국(default) -> 한국 변경
RUN sed -i 's@archive.ubuntu.com@kr.archive.ubuntu.com@g' /etc/apt/sources.list
# 자주 사용하는 패키지 설치
RUN apt-get update && \
apt-get install net-tools -y && \
apt-get install iputils-ping -y && \
apt-get install vim -y && \
apt-get install wget -y
# 작업영역 /home
WORKDIR /home
# jdk
RUN apt-get install openjdk-8-jdk -y
# spark-3.2.1-bin-hadoop3.2
RUN wget https://dlcdn.apache.org/spark/spark-3.2.1/spark-3.2.1-bin-hadoop3.2.tgz && \
tar -xvf spark-3.2.1-bin-hadoop3.2.tgz && \
mv spark-3.2.1-bin-hadoop3.2 spark && \
rm -rf spark-3.2.1-bin-hadoop3.2.tgz
# python 3.8.0
RUN apt-get install python3.8 -y && \
ln -s /usr/bin/python3.8 /usr/bin/python3 && \
ln -s /usr/bin/python3.8 /usr/bin/python
# pip3 설정
RUN mkdir /root/.pip && \
set -x \
&& { \
echo '[global]'; \
echo 'timeout = 60'; \
echo '[freeze]'; \
echo 'timeout = 10'; \
echo '[list]'; \
echo 'format = columns'; \
} > /root/.pip/pip.conf
# 환경설정
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64
ENV SPARK_HOME /home/spark
ENV PATH $PATH:$JAVA_HOME/bin:$SPARK_HOME/bin
# spark 설정파일 수정
COPY ./spark-cluster/spark-cluster-conf/spark-env.sh /home/spark/conf/spark-env.sh
RUN rm -rf /home/spark/conf/spark-env.sh.template && \
rm -rf /home/spark/bin/*.cmd
docker-compose.yml 파일은 다음과 같다.
version: '2.1'
services:
spark-master:
hostname: spark-master
container_name: spark-master
image: spark-cluster:0.01
restart: always
ports:
- 18080:8080 # 스파크 웹 UI
stdin_open: true
tty: true
environment:
- SparkMode=master
현재 도커의 컨테이너와 이미지 상태를 보자.
docker ps -a
docker images
컨테이너와 이미지가 아무것도 없다.
먼저 이미지를 다운받는 쉘 스크립트를 실행하자.
./full_build.sh
컨테이너 실행
docker-compose up -d
컨테이너 접속
./bash/bash-spark-master.sh
jps 확인
jps
스파크 마스터 실행
/home/spark/sbin/start-master.sh
jps 확인
jps
웹페이지 확인 18080
localhost:18080
웹 ui 기본포트는 컨테이너의 8080포트가 열리고,
스파크 마스터의 실행포트는 7077으로 확인할 수 있다.
netstat -tnlp | grep "LISTEN"
'Data Engineering > Spark' 카테고리의 다른 글
[Spark] ./spark/sbin/start-master.sh 실행 옵션 확인 (0) | 2022.04.13 |
---|---|
[Spark] 도커 컨테이너의 열린 포트 확인하는 방법 (0) | 2022.04.13 |
[spark] bash: javac: command not found (0) | 2022.04.10 |
[spark] 스파크 설치 전 jdk 설치하기 (0) | 2022.04.10 |
[Spark] 애플리케이션 실행 전후 jps, cpu, memory 변화 확인하기 (0) | 2022.03.30 |