【云原生 | 54】Docker三剑客之Docker Compose应用案例二:大数据Spark集群

news2024/11/24 10:59:23

🍁博主简介
        🏅云计算领域优质创作者
        🏅2022年CSDN新星计划python赛道第一名

        🏅2022年CSDN原力计划优质作者
        🏅阿里云ACE认证高级工程师
        🏅阿里云开发者社区专家博主

💊交流社区:CSDN云计算交流社区欢迎您的加入!

目录

1、简介

2、准备工作 

2.1 docker-compose.yml文件 

2.2 master服务 

2.3 worker服务 

3、启动集群 

4、执行应用 

 👑👑👑结束语👑👑👑​编辑


1、简介

Spark是Berkeley开发的分布式计算的框架,相对于Hadoop来说,Spark可以缓存中间结果到内存从而提高某些需要迭代的计算场景的效率,目前受到广泛关注。
熟悉Hadoop的读者会比较轻松,Spark很多设计理念和用法都跟Hadoop保持一致和相似,并且在使用上完全兼容HDFS。但是Spark的安装并不容易,依赖包括Java、Scala、HDFS等。
通过使用Docker Compose,可以快速地在本地搭建一套Spark环境,方便大家开发Spark应用,或者扩展到生产环境。

2、准备工作 

这里,我们采用比较热门的sequenceiq/docker-spark镜像,这个镜像已经安装了对Spark的完整依赖。由于镜像比较大(超过2GB),推荐先下载镜像到本地:
$ docker pull sequenceiq/spark:1.4.0

2.1 docker-compose.yml文件 

首先新建一个spark_cluster目录,并在其中创建一个docker-compose.yml文件。文件内容如下:
master:
    image: sequenceiq/spark:1.4.0
    hostname: master
    ports:
    - "4040:4040"
    - "8042:8042"
    - "7077:7077"
    - "8088:8088"
    - "8080:8080"
    restart: always
    #mem_limit: 1024m
    command: bash /usr/local/spark/sbin/start-master.sh && ping localhost > /dev/null
worker:
    image: sequenceiq/spark:1.4.0
    links:
    - master:master
    expose:
    - "8081"
    restart: always
    command: bash /usr/local/spark/sbin/start-slave.sh spark://master:7077 &&
        ping localhost >/dev/null
docker-compose.yml中定义了两种类型的服务:master和slave。master类型的服务容器将负责管理操作,worker则负责具体处理。

2.2 master服务 

master服务映射了好几组端口到本地,端口的功能如下:

·4040:Spark运行任务时候提供Web界面观察任务的具体执行状况,包括执行到哪个阶段、在哪个executor上执行;
·8042:Hadoop的节点管理界面;
·7077:Spark主节点的监听端口,用户可以提交应用到这个端口,worker节点也可以通过这个端口连接到主节点构成集群;
·8080:Spark的监控界面,可以看到所有worker、应用的整体信息;
·8088:Hadoop集群的整体监控界面。

2.3 worker服务 

类似于master节点,启动后,执行/usr/local/spark/sbin/start- slave.sh spark://master:7077命令来配置自己为worker节点,然后通过ping来避免容器退出。
注意,启动脚本后面需要提供spark://master:7077参数来指定master节点地址。
8081端口提供的Web界面,可以看到该worker节点上任务的具体执行情况,如图所示。

3、启动集群 

在spark_cluster目录下执行启动命令:

$ docker-compose up
docker-compose服务运行起来后,我们还可以用scale命令来动态扩展Spark的worker节点数,例如:
$ docker-compose scale worker=2
Creating and starting 2... done

4、执行应用 

Spark推荐用spark-submit命令来提交执行的命令,基本语法为:

spark-submit \
    --class your-class-name \
    --master master_url \
    your-jar-file
    app_params
例如,我们可以使用Spark自带样例中计算Pi的应用。
在master节点上执行如下命令:
/usr/local/spark/bin/spark-submit --master spark://master:7077 --conf "spark.
eventLog.enabled=true" --class org.apache.spark.examples.SparkPi /usr/local/
spark/lib/spark-examples-1.4.0-hadoop2.6.0.jar 1000
最后的参数1000表示要计算的迭代次数为1000次。
任务运行中,可以用浏览器访问4040端口,看到任务被分配到了两个worker节点上执行,如图所示。

 👑👑👑结束语👑👑👑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/644658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

天下苦 Spring 久矣,Solon v2.3.3 发布

Solon 是什么框架? 一个,Java 新的生态型应用开发框架。它从零开始构建,有自己的标准规范与开放生态(全球第二级别的生态)。与其他框架相比,它解决了两个重要的痛点:启动慢,费资源。…

HarmonyOS学习路之开发篇—Java UI框架(PositionLayoutAdaptiveBoxLayout)

PositionLayout 在PositionLayout中,子组件通过指定准确的x/y坐标值在屏幕上显示。(0, 0)为左上角;当向下或向右移动时,坐标值变大;允许组件之间互相重叠。 PositionLayout示意图 布局方式 PositionLayout以坐标的形式控制组件的…

基于Hexo和Butterfly创建个人技术博客,(4) 使用通用的Markdown语法编写博客文章

Hexo官司网查看 这里 hexo的博文建议是用markdown语法来写,原因markdown简单通用,比如很多博客平台都会提供md编辑器,这样如果我们想把同一篇文章发到多个博客平台上(事实上很多人也是这样做的),md应该是最好的编写方法了&#xf…

目标检测数据集---交通信号数据集

✨✨✨✨✨✨目标检测数据集✨✨✨✨✨✨ 本专栏提供各种场景的数据集,主要聚焦:工业缺陷检测数据集、小目标数据集、遥感数据集、红外小目标数据集,该专栏的数据集会在多个专栏进行验证,在多个数据集进行验证mAP涨点明显,尤其是小目标、遮挡物精度提升明显的数据集会在该…

js控制台 console.log 输出美化,及其他操作

1.格式美化 console.log(%c红色%c蓝色%c绿色, color: red;, color: blue;, color: green;) console.log(%c一段文字\n换行一下\n%c SmileSay %c 版本:1.0.0 ,color: #3eaf7c; font-size: 16px;line-height:30px;,background: #35495e; padding: 4px; border-radius…

数仓数据质量保障方法

一、有赞数据链路 1、数据链路介绍 首先介绍有赞的数据总体架构图: 自顶向下可以大致划分为应用服务层、数据网关层、应用存储层、数据仓库,并且作业开发、元数据管理等平台为数据计算、任务调度以及数据查询提供了基础能力。 以上对整体架构做了初步…

射频电路layout总结

射频电路板设计由于在理论上还有很多不确定性,因此常被形容为一种“黑色艺术”,但这个观点只有部分正确,RF电路板设计也有许多可以遵循的准则和不应该被忽视的法则。在实际设计时,真正实用的技巧是当这些准则和法则因各种设计约束…

OpenCV(图像处理)-基于Oython-滤波器(低通、高通滤波器的使用方法)

1.概念介绍2. 图像卷积filter2D() 3. 低通滤波器3.1 方盒滤波和均值滤波boxFilter()blur() 3.2 高斯滤波(高斯噪音)3.3 中值滤波(胡椒噪音)3.4 双边滤波 4. 高通滤波器4.1Sobel(索贝尔)(高斯&am…

软考A计划-系统架构师-知识点汇总-下篇

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

​Agile与Scrum的比较

作者| Deepali chadokar Agile和Scrum是软件开发中经常使用的两个相关概念。Agile是一个概括性的术语,包含了一组软件开发的价值观和原则,而Scrum是Agile方法中的一个特定框架。 Agile强调协作、灵活性和适应性,以及应对变化的能力。此外&…

Vue中 echarts响应式页面变化resize()

前言 Vue项目中开发数据大屏,使用echarts图表根据不同尺寸的屏幕进行适配 BUG:当页面进行缩放时图表大小没有变化 使用到的方法: resize() 调用echarts中内置的resize函数进行自适应缩放,然后添加监控,页面销毁时删掉…

Zabbix“专家坐诊”第195期问答汇总

问题一 Q:麻烦请教一下zabbix服务器总是上报这几个告警,需要处理嘛?怎么处理? A:同步历史数据进程负载过高的话会影响到server的性能,建议增加服务器硬件配置。 Q:是需要增加哪方面的配置&…

ISO21434 威胁分析和风险评估方法(十二)

目录 一、概述 二、目标 三、资产识别 3.1 输入 3.1.1 先决条件 3.1.2 进一步支持信息 3.2 要求和建议 3.3 输出 四、威胁场景识别 4.1 输入 4.1.1 先决条件 4.1.2 进一步支持信息 4.2 要求和建议 4.3 输出 五、影响等级 5.1 输入 5.1.1 先决条件 5.1.2 进一…

制造业如何进行数字化转型?这个解决方案能帮你!

制造业如何有效实现数字化?制造业企业数字化的趋势已成必然,那么,如何进行制造业企业的数字建设成为各传统制造业企业的探索方向。 于是,我们团队在调研了数百家企业之后,形成了这套制造业数字化从0到1,从…

一文让你用上Xxl-Job 顺带了解cron表达式

文章目录 1.定时任务框架-xxljob1.1 Xxljob介绍1)xxljob概述2)XXL-JOB特性3) 整体架构4)入门资料准备 1.2 xxljob快速入门1)导入xxljob工程2)配置数据库1.初始化SQL脚本2.配置数据库环境3.业务处配置任务注册中心 3&am…

【色度学】光学基础

1. 光的本质 (1)波长不同的可见光,引起人眼的颜色感觉不同。 (2)人们观察到的颜色是物体和特有色光相结合的结果,而不是物体产生颜色的结果。 2. 光度量 【ISP】光的能量与颜色(1&#xff0…

【学术探讨】万能密码原理剖析

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 【万能密码】,顾名思义,就是…

ArcGIS提取水系并进行生态敏感性分析

1、前言 ,这篇是用ArcGIS进行水系提取,与前者的区别是上篇一般是对遥感影像进行处理,准确性较高;这篇是讲在没有遥感影像的情况下,用DEM进行水系的提取,一般与实际水系有差别,准确性较低。但是…

rm 命令的使用以及指定不删除某些文件

目录 1、删除单个文件 2、强制删除文件,无需确认 3、删除文件夹 4、删除目录下全部文件,包括文件夹 5、删除全部文件,但保留readme.txt 6、删除全部文件,保留1.txt和2.txt 7、使用find grep xargs命令来删除 8、删除全部…

把手伸向大数据平台的云原生,是如何将大数据平台迁移至K8s上的?

我们正身处数据大爆炸的时代,据IDC数据显示,仅在2022年,人类就将创造超过97ZB的数据;要知道截至2012年,人类生产的所有印刷材料的数据量为200PB,仅为2022年一年所创造数据量的50万分之一。据预测&#xff0…