Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)

​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)

这篇文章深入研究了在Linux Ubuntu环境下使用Docker构建Spark运行环境的详细步骤。首先,文章介绍了Spark的基本概念以及在大数据处理中的关键作用,为读者提供了对Spark的背景和价值的全面了解。随后,文章逐一解释了在Ubuntu系统中安装和配置Docker的具体步骤,为搭建Spark环境做好准备。

在Docker环境准备就绪后,文章详细说明了如何通过Docker容器配置Spark的运行环境,包括依赖项的安装、环境变量的设置以及Spark的核心组件的配置。通过这些步骤,读者将能够轻松地建立一个高效运行的Spark环境,以满足大数据处理的需求。

文章以超级详细的方式呈现了每个关键步骤,确保读者能够清晰理解并成功实施。最终,本文为在Linux Ubuntu环境下构建和配置Spark运行环境提供了实用的指南,为大数据处理提供了一个强大的工具和平台。

使用docker hub查找我们需要的镜像

参考 Docker Hub

bash 复制代码
curl -LO https://raw.githubusercontent.com/bitnami/containers/main/bitnami/spark/docker-compose.yml

提示:curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

原因应该是国外的ip,撞墙了 直接看解决方案吧

解决方案:

1、打开网站,https://www.ipaddress.com/,在此网站中查询一下 raw.githubusercontent.com对应的IP 地址

到这个网站查找这个域名绑定的ip

Vi etc/hosts

末尾加上:

185.199.108.133 raw.githubusercontent.com

curl运行成功

bash 复制代码
curl -LO https://raw.githubusercontent.com/bitnami/containers/main/bitnami/spark/docker-compose.yml
bash 复制代码
 docker-compose up

安装 Spark的 docker 镜像

docker pull bitnami/spark:latest

docker pull bitnami/spark:TAG

git clone出现 fatal: unable to access 'https://github.com/...'的解决方法

查阅了一些资料,发现需要在hosts文件中添加映射。

bash 复制代码
vi /etc/hosts

在hosts文件中加入两行

140.82.113.4 github.com

140.82.113.4 www.github.com

git clone

cd bitnami/APP/VERSION/OPERATING-SYSTEM

找到对应目录:

bash 复制代码
cd /home/rgzn/containers/bitnami//spark/3.2/debian-11

. 表示当前目录

bash 复制代码
docker build -t bitnami/spark:latest .

参数说明:

-t :指定要创建的目标镜像名

. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

找到包含 Dockerfile 的目录并执行命令来自己构建映像

使用yml部署文件部署spark环境

spark.yml文件可以从本机编辑好再上传的虚拟机或服务器。spark.yml文件内容如下:

XML 复制代码
version: '3.8'

services:
  spark-master:
    image: bde2020/spark-master
    container_name: spark-master
    ports:
      - "8080:8080"
      - "7077:7077"
    volumes:
      - ~/spark:/data
    environment:
      - INIT_DAEMON_STEP=setup_spark
  spark-worker-1:
    image: bde2020/spark-worker:latest
    container_name: spark-worker-1
    depends_on:
      - spark-master
    ports:
      - "8081:8081"
    volumes:
      - ~/spark:/data
    environment:
      - "SPARK_MASTER=spark://spark-master:7077"
  spark-worker-2:
    image: bde2020/spark-worker:latest
    container_name: spark-worker-2
    depends_on:
      - spark-master
    ports:
      - "8082:8081"
    volumes:
      - ~/spark:/data
    environment:
      - "SPARK_MASTER=spark://spark-master:7077"

使用yml部署文件部署spark环境

XML 复制代码
cd /usr/local/bin

创建文件sudo vim spark.yml

XML 复制代码
sudo chmod 777 spark.yml

在spark.yml文件所在的目录下,执行命令:

XML 复制代码
sudo docker-compose -f spark.yml up -d

查看容器创建与运行状态

XML 复制代码
sudo docker ps

对输出进行格式化

XML 复制代码
sudo docker ps --format '{{.ID}} {{.Names}}'

使用浏览器查看master的web ui界面

127.0.0.1:8080

http://192.168.95.171:50070

进入spark-master容器

sudo docker exec -it <master容器的id,仅需输入一部分即刻> /bin/bash

XML 复制代码
sudo docker exec -it 98600cfa9ba7 /bin/bash

查询spark环境,安装在/spark下面。

XML 复制代码
ls /spark/bin

进入spark-shell

XML 复制代码
/spark/bin/spark-shell --master spark://spark-master:7077 --total-executor-cores 8 --executor-memory 2560m

或者

XML 复制代码
/spark/bin/spark-shell

进入浏览器查看spark-shell的状态

测试:创建RDD与filter处理

创建一个RDD

XML 复制代码
val rdd=sc.parallelize(Array(1,2,3,4,5,6,7,8))

打印rdd内容

XML 复制代码
rdd.collect()

查询分区数

XML 复制代码
rdd.partitions.size

选出大于5的数值

XML 复制代码
val rddFilter=rdd.filter(_ > 5)

打印rddFilter内容

XML 复制代码
rddFilter.collect()

退出spark-shell

XML 复制代码
:quit

运行案列成功!

相关推荐
wespaul38 分钟前
VeapAI 自然语言操作实战|第 05 篇:向量与召回——从知识条目到可检索资产
大数据·数据库·人工智能·milvus
李福春1 小时前
技术思考问题17:上了LangChain框架就等于AI-Agent工程化吗?
大数据·人工智能·langchain·深圳同盟·腾讯云架构师技术同盟·llm应用架构·编排抽象
牛马工作号1 小时前
Mosquitto + ACME:从 Docker Compose 部署到 TLS 证书自动续期与加载
运维·docker·容器
Initialize-le4 小时前
Nginx 504 超时、499 一堆?网关排查法
运维·nginx
一只鹿鹿鹿6 小时前
政务外网整体设计方案(PPT)
大数据·数据库·web安全·系统安全·流程图·政务
Android系统攻城狮6 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
快乐的韭菜根根7 小时前
ubuntu 安装slurm并配置
linux·运维·ubuntu
数字新视界7 小时前
机房动环监控提升运维效率
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
SelectDB技术团队7 小时前
冷热分层从建到验:Storage Policy 创建、表级与分区级绑定、SHOW TABLETS 验证的完整命令
大数据·数据库·elasticsearch·搜索引擎·数据分析·apache doris·冷热分层
CALL158119098457 小时前
RoHS报告怎么做?测试项目、流程、费用与报告内容一文讲清
大数据