Dockerfile
FROM ubuntu:18.04
LABEL maintainer "ParkGyeongTae"
# apt 설치시 입력요청 무시
ENV DEBIAN_FRONTEND=noninteractive
# 가끔 프록시 엇갈리는 문제
# RUN set -x \
# && { \
# echo 'Acquire::http::Pipeline-Depth 0;'; \
# echo 'Acquire::http::No-Cache true;'; \
# echo 'Acquire::BrokenProxy true;'; \
# } > /etc/apt/apt.conf.d/99fixbadproxy
# apt 미러서버 미국(default) -> 한국 변경
RUN sed -i 's@archive.ubuntu.com@kr.archive.ubuntu.com@g' /etc/apt/sources.list
# 자주 사용하는 패키지 설치
RUN apt-get update -y && \
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 압축파일 이동 (jdk-8u321-linux-x64)
COPY ./jdk/jdk-8u321-linux-x64.tar.gz /home/jdk-8u321-linux-x64.tar.gz
RUN tar -xvf jdk-8u321-linux-x64.tar.gz && \
mv jdk1.8.0_321 jdk && \
rm -rf jdk-8u321-linux-x64.tar.gz
# 스파크 설치 (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
# 제플린 설치 (zeppelin-0.10.1)
RUN wget https://dlcdn.apache.org/zeppelin/zeppelin-0.10.1/zeppelin-0.10.1-bin-all.tgz && \
tar -zxf zeppelin-0.10.1-bin-all.tgz && \
mv zeppelin-0.10.1-bin-all zeppelin && \
rm -rf zeppelin-0.10.1-bin-all.tgz
# 파이썬 설치 (python 3.8.10) : pyspark 사용 가능하도록
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
# 환경설정
# RUN set -x \
# && { \
# echo 'JAVA_HOME=/home/jdk'; \
# echo 'SPARK_HOME=/home/spark'; \
# echo 'export JAVA_HOME SPARK_HOME'; \
# echo 'export PATH=$PATH:$JAVA_HOME/bin:$SPARK_HOME/bin'; \
# } >> /root/.bashrc
# ENV JAVA_HOME /home/jdk
# RUN export JAVA_HOME
ENV JAVA_HOME /home/jdk
ENV SPARK_HOME /home/spark
ENV PATH $PATH:$JAVA_HOME/bin:$SPARK_HOME/bin
# spark, zeppelin 설정파일 수정
COPY ./spark-conf/spark-env.sh /home/spark/conf/spark-env.sh
COPY ./zeppelin-conf/zeppelin-env.sh /home/zeppelin/conf/zeppelin-env.sh
COPY ./zeppelin-conf/zeppelin-site.xml /home/zeppelin/conf/zeppelin-site.xml
RUN rm -rf /home/spark/conf/spark-env.sh.template && \
rm -rf /home/zeppelin/conf/zeppelin-env.sh.template && \
rm -rf /home/zeppelin/conf/zeppelin-site.xml.template && \
mkdir /home/zeppelin/logs && \
mkdir /home/zeppelin/run
# 컨테이너 실행시 zeppelin 자동실행
COPY ./entrypoint/entrypoint-zeppelin.sh /usr/local/bin/
ENTRYPOINT ["entrypoint-zeppelin.sh"]
'Data Engineering > Spark' 카테고리의 다른 글
[Spark] Spark on Yarn Cluster 어플리케이션 실행 전후 각 서버별 jps 상태 확인하기 (0) | 2022.03.20 |
---|---|
[Spark] Spark on Yarn Cluster 실행시 각 컨테이너별 jps 상태 확인하기 (0) | 2022.03.20 |
[Spark] 로컬에서 스파크 클러스터 테스트시 사용하는 dockerfile (0) | 2022.03.20 |
[Spark] 제플린에서 spark context 옵션에 대해 살펴보기 (0) | 2022.03.19 |
[Spark] 제플린에서 spark-shell 옵션 설정하는 방법 (0) | 2022.03.19 |