使用 Dockerfile、Docker Compose 构建 Spark集群环境,方便以后的部署,日常开发。
Spark部署模式主要有四种:
关联仓库地址:https://github.com/yiyungent/spark-docker
FROM ubuntu:20.04 AS base
LABEL maintainer="yiyun <yiyungent@gmail.com>"
# 设置国内阿里云镜像源
COPY etc/apt/aliyun-ubuntu-20.04-focal-sources.list /etc/apt/sources.list
# 时区设置
ENV TZ=Asia/Shanghai
RUN apt-get update
# 1. 安装常用软件
RUN apt-get install -y wget
RUN apt-get install -y ssh
RUN apt-get install -y vim
# 2. 安装 Java
ADD jdk-8u131-linux-x64.tar.gz /opt/
RUN mv /opt/jdk1.8.0_131 /opt/jdk1.8
ENV JAVA_HOME=/opt/jdk1.8
ENV JRE_HOME=${JAVA_HOME}/jre
ENV CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH=${JAVA_HOME}/bin:$PATH
docker build -t spark-with-java .
docker run -it --name spark-container spark-with-java bash
# 3. 安装 Scala
RUN wget http://downloads.lightbend.com/scala/2.12.1/scala-2.12.1.tgz
RUN mkdir /opt/scala
RUN tar -zxvf scala-2.12.1.tgz -C /opt/scala/
ENV SCALA_HOME=/opt/scala/scala-2.12.1
ENV PATH=${SCALA_HOME}/bin:$PATH
docker build -t spark-with-scala .
docker run -it --name spark-container spark-with-scala bash
scala -version
# 4. 安装 Spark
RUN mkdir /opt/spark
#RUN wget https://downloads.apache.org/spark/spark-3.0.2/spark-3.0.2-bin-hadoop2.7.tgz
RUN wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.0.2/spark-3.0.2-bin-hadoop2.7.tgz
RUN tar -zxvf spark-3.0.2-bin-hadoop2.7.tgz -C /opt/spark/
ENV SPARK_HOME=/opt/spark/spark-3.0.2-bin-hadoop2.7
ENV PATH=${SPARK_HOME}/bin:$PATH
注意: 这里使用的是 spark-3.0.2-bin-hadoop2.7 ,此包已经包含了编译好的hadoop2.7,
start-all.sh
将同时启动 Hadoop 集群
docker build -t spark .
docker run -it --name spark-container spark bash
spark-shell
3+5
补充:
使用如下命令退出spark-shell交互式环境:
:quit
vim /home/word.txt
I love Spark
I love Hadoop
Spark is good
spark-shell
val line=sc.textFile("file:///home/word.txt")
println(line.count())
由于我们经常需要让Spark去访问Hadoop中的HDFS, 因此,需要测试一下Spark是否可以正常访问HDFS。 执行如下命令启动Hadoop中的HDFS:
默认在哪台机器启动,那台机器就是master节点
/opt/spark/spark-3.0.2-bin-hadoop2.7/sbin/start-all.sh
补充:
也可以利用环境变量:
$SPARK_HOME/sbin/start-all.sh
补充:
也可以在其它节点启动备份主节点:
$SPARK_HOME/sbin/start-master.sh
参考:
感谢帮助!
本文作者: yiyun
本文链接: https://moeci.com/posts/分类-docker/docker-spark/
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有