当前位置: 首页 > news >正文

​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

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运行成功

curl -LO https://raw.githubusercontent.com/bitnami/containers/main/bitnami/spark/docker-compose.yml

 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文件中添加映射。

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

找到对应目录:

cd /home/rgzn/containers/bitnami//spark/3.2/debian-11

 

 # . 表示当前目录

docker build -t bitnami/spark:latest .

参数说明:

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

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

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

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

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

version: '3.8'services:spark-master:image: bde2020/spark-mastercontainer_name: spark-masterports:- "8080:8080"- "7077:7077"volumes:- ~/spark:/dataenvironment:- INIT_DAEMON_STEP=setup_sparkspark-worker-1:image: bde2020/spark-worker:latestcontainer_name: spark-worker-1depends_on:- spark-masterports:- "8081:8081"volumes:- ~/spark:/dataenvironment:- "SPARK_MASTER=spark://spark-master:7077"spark-worker-2:image: bde2020/spark-worker:latestcontainer_name: spark-worker-2depends_on:- spark-masterports:- "8082:8081"volumes:- ~/spark:/dataenvironment:- "SPARK_MASTER=spark://spark-master:7077"

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

cd /usr/local/bin

创建文件sudo vim spark.yml

sudo chmod 777 spark.yml

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

sudo docker-compose -f spark.yml up -d

查看容器创建与运行状态

sudo docker ps

对输出进行格式化

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

sudo docker exec -it 98600cfa9ba7 /bin/bash

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

ls /spark/bin

进入spark-shell

/spark/bin/spark-shell --master spark://spark-master:7077 --total-executor-cores 8 --executor-memory 2560m

或者

/spark/bin/spark-shell

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

测试:创建RDD与filter处理

创建一个RDD

val rdd=sc.parallelize(Array(1,2,3,4,5,6,7,8))

打印rdd内容

rdd.collect()

 查询分区数

rdd.partitions.size

选出大于5的数值

val rddFilter=rdd.filter(_ > 5)

打印rddFilter内容

rddFilter.collect()

退出spark-shell

:quit

 运行案列成功!

相关文章:

  • HTML---表单
  • 静态HTTP应用:理解其工作原理与优势
  • OSG加载地形
  • javaweb搭配ajax和json
  • 数字开关:晶体管饱和和强制 Beta
  • 深入浅出分析kafka客户端程序设计 ----- 生产者篇----万字总结
  • 基于FFmpeg,实现播放器功能
  • 浅谈基于深度学习的手写体纸质文档识别OCR软件
  • 解决GateWay报错:Exceeded limit on max bytes to buffer : 262144
  • matlab操作方法(三)——matlab中的数字图像(读取、显示、保存)
  • 基于微信小程序的校园二手闲置物品交易平台的设计与实现
  • 【期末复习向】常见的激活函数
  • 常见的工作流编排引擎
  • 基于docker容器化部署微服务
  • 云计算大屏,可视化云计算分析平台(云实时数据大屏PSD源文件)
  • angular2 简述
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • eclipse的离线汉化
  • Go 语言编译器的 //go: 详解
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • js操作时间(持续更新)
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • windows下mongoDB的环境配置
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 记一次和乔布斯合作最难忘的经历
  • 类orAPI - 收藏集 - 掘金
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • UI设计初学者应该如何入门?
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 进程与线程(三)——进程/线程间通信
  • # .NET Framework中使用命名管道进行进程间通信
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • $.proxy和$.extend
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (39)STM32——FLASH闪存
  • (4)事件处理——(7)简单事件(Simple events)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (笔试题)合法字符串
  • .md即markdown文件的基本常用编写语法
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET命令行(CLI)常用命令
  • .net中生成excel后调整宽度
  • [20160902]rm -rf的惨案.txt
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [acm算法学习] 后缀数组SA
  • [android] 请求码和结果码的作用
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计
  • [Django ]Django 的数据库操作
  • [Geek Challenge 2023] web题解
  • [HarekazeCTF2019]encode_and_encode 不会编程的崽