前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker 搭建 Spark

Docker 搭建 Spark

作者头像
yiyun
发布2022-04-01 16:34:28
3.3K1
发布2022-04-01 16:34:28
举报
文章被收录于专栏:yiyun 的专栏

引言

使用 Dockerfile、Docker Compose 构建 Spark集群环境,方便以后的部署,日常开发。

Spark部署模式主要有四种:

  1. Local模式(单机模式)
  2. Standalone模式(使用Spark自带的简单集群管理器)
  3. YARN模式(使用YARN作为集群管理器)
  4. Mesos模式(使用Mesos作为集群管理器)

关联仓库地址:https://github.com/yiyungent/spark-docker

1. 准备

代码语言:javascript
复制
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

代码语言:javascript
复制
# 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

测试

代码语言:javascript
复制
docker build -t spark-with-java .
代码语言:javascript
复制
docker run -it --name spark-container spark-with-java bash

3. 安装 Scala

代码语言:javascript
复制
# 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 

测试

代码语言:javascript
复制
docker build -t spark-with-scala .
代码语言:javascript
复制
docker run -it --name spark-container spark-with-scala bash
代码语言:javascript
复制
scala -version

4. 安装 Spark

代码语言:javascript
复制
# 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 集群

测试

代码语言:javascript
复制
docker build -t spark .
代码语言:javascript
复制
docker run -it --name spark-container spark bash
代码语言:javascript
复制
spark-shell
代码语言:javascript
复制
3+5

补充:

使用如下命令退出spark-shell交互式环境:

代码语言:javascript
复制
:quit

测试Spark是否可以正常访问Ubuntu系统中的本地文件

代码语言:javascript
复制
vim /home/word.txt
代码语言:javascript
复制
I love Spark
I love Hadoop
Spark is good
代码语言:javascript
复制
spark-shell
代码语言:javascript
复制
val line=sc.textFile("file:///home/word.txt")
代码语言:javascript
复制
println(line.count())

测试Spark是否能够正常访问Hadoop中的HDFS

由于我们经常需要让Spark去访问Hadoop中的HDFS, 因此,需要测试一下Spark是否可以正常访问HDFS。 执行如下命令启动Hadoop中的HDFS:

启动 Spark 集群

默认在哪台机器启动,那台机器就是master节点

代码语言:javascript
复制
/opt/spark/spark-3.0.2-bin-hadoop2.7/sbin/start-all.sh

补充:

也可以利用环境变量:

代码语言:javascript
复制
$SPARK_HOME/sbin/start-all.sh

补充:

也可以在其它节点启动备份主节点:

代码语言:javascript
复制
$SPARK_HOME/sbin/start-master.sh

测试

参考:

参考

感谢帮助!

本文作者: yiyun

本文链接: https://moeci.com/posts/分类-docker/docker-spark/

版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 1. 准备
  • 2. 安装 Java
    • 测试
    • 3. 安装 Scala
      • 测试
      • 4. 安装 Spark
        • 测试
          • 测试Spark是否可以正常访问Ubuntu系统中的本地文件
            • 测试Spark是否能够正常访问Hadoop中的HDFS
              • 启动 Spark 集群
              • 测试
              • 参考
              相关产品与服务
              容器镜像服务
              容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档