运维.售后
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
博客
Blog
ToB门户
了解全球最新的ToB事件
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
大数据
›
数据仓库与分析
›
spark on k8s两种方式的原理与对比
spark on k8s两种方式的原理与对比
梦应逍遥
金牌会员
|
2024-8-21 22:39:53
|
显示全部楼层
|
阅读模式
楼主
主题
591
|
帖子
591
|
积分
1773
spark on k8s两种方式的原理与对比
1、spark on k8s 方式
spark-submit可以直接用来向 Kubernetes 集群提交 Spark 应用,提交机制如下:
1、Spark 创建一个在Kubernetes pod中运行的 Spark 驱动程序。
2、驱动程序创建在 Kubernetes Pod 中运行的执行器并毗连到它们,然后执行应用程序代码。
3、当应用程序完成时,执行器容器停止并被清算,但驱动程序容器会保留日志并在 Kubernetes API 中保持“完成”状态,直到最终被垃圾网络或手动清算。
长处
简朴直接:
使用 spark-submit 命令直接提交作业,无需额外学习和设置 Spark Operator。
原生 Spark 体验:
提供原生的 Spark 使用体验,认识 Spark 的用户可以更快上手。
机动性高:
通过 spark-submit 可以直接控制 Spark 作业的设置和运行参数,顺应不同的需求。
无需额外组件:
不需要安装和维护 Spark Operator 这个额外的组件,减少了系统复杂性。
缺点
手动管理:
需要手动管理 Spark 作业的生命周期,包括提交、监控、重启等任务,增加了运维负担。
缺乏集中管理:
每次提交作业都需要单独设置,缺乏集中化管理和版本控制的能力。
2、spark on k8s Operator 方式
使用 Spark Operator 是一种更高级的方式,它提供了一个 Kubernetes 原生的方法来管理 Spark 作业。Spark Operator 是一个 Kubernetes 控制器,负责处理 SparkApplication CRD(自定义资源定义)。
1、安装 Spark Operator,然后定义 spark-app.yaml,再执行 kubectl apply -f spark-app.yaml,这种申明式 API 和调用方式是 K8S 的典范应用方式。
2、使用 Kubernetes 自定义资源来指定、运行和显示 Spark 应用程序的状态。
核心组件
Custom Resource Definition (CRD):
Spark Operator 定义了一个自定义资源类型,称为 SparkApplication。这个 CRD 形貌了一个 Spark 应用程序的设置,包括应用程序名称、主类、部署模式(Cluster 或 Client)、资源设置等。
Spark Operator Controller:
Spark Operator Controller 是一个 Kubernetes 控制器,它负责监视 SparkApplication CRD 的变革(如创建、更新、删除)。当检测到变革时,它会根据 CRD 的设置来创建和管理相应的 Kubernetes 资源。
工作流程
1、提交 Spark 应用:
用户通过 kubectl 或 CI/CD 管道等方式提交一个 SparkApplication CRD 对象到 Kubernetes 集群。
监视和相应:
Spark Operator Controller 监视 Kubernetes 集群中的 SparkApplication 对象。当检测到一个新的 SparkApplication 对象时,控制器会读取其设置,并创建相应的 Kubernetes 资源(如 Pod、Service 等)来运行 Spark 应用程序。
创建 Driver 和 Executor Pods:
根据 SparkApplication 的设置,Spark Operator 会创建 Spark Driver Pod 和相应数量的 Executor Pods。Driver Pod 负责协调 Spark 应用的执行,而 Executor Pods 则执行详细的盘算任务。
管理生命周期:
Spark Operator 负责管理整个 Spark 应用程序的生命周期,包括启动、监视、失败重启和删除等操作。它会根据 Spark 应用的状态更新 SparkApplication 对象的状态字段,用户可以通过查询 SparkApplication 对象来了解应用的当前状态。
长处
1、自动化管理:
Spark Operator 提供声明式设置,简化了 Spark 作业的提交和管理过程。自动处理作业的创建、监控、重启等任务。
2、Kubernetes 原生集成:
使用 CRD(自定义资源定义)和控制器,深度集成 Kubernetes 的功能,充分利用其调度、扩展和管理能力。
3、作业设置集中化:
SparkApplication CRD 提供了集中管理和版本控制的能力,可以通过 GitOps 等工具更好地管理作业设置。
4、易于扩展和管理:
通过 Helm Charts 部署和管理 Spark Operator 及其相关资源,简化了安装和维护过程。
缺点
增加了复杂性:
需要额外学习和维护 Spark Operator,自带的控制器和 CRD 增加了系统复杂性。
调试困难:
调试 Spark Operator 相关题目可能较为复杂,需要了解 Kubernetes 和 Spark 的运行机制和日志分析。
版本兼容性:
可能存在 Spark Operator 和 Spark 版本之间的兼容性题目,需要确保两者的版本匹配。
总结
Spark on k8s Operator 更得当大规模、需要自动化和集中管理的场景。它利用 Kubernetes 的原生功能,实现自动化管理和设置集中化,固然增加了一些复杂性,但在动态和多租户情况中表现出色。
Spark on k8s 得当简朴、直接的 Spark 作业提交和管理场景,特殊是对于那些已有 Spark 使用经验的用户。它操作简便,无需额外组件,机动性较高。但在大规模和自动化需求较高的场景中,管理和扩展的能力相对较弱。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
梦应逍遥
金牌会员
这个人很懒什么都没写!
楼主热帖
云计算稽核 - 分析电子银行需求采用微 ...
HarmonyOS应用开辟高级认证考试答案三- ...
如何将github copilot当gpt4用
防患于未然,智能监控新视角:EasyCVR ...
从零手写实现 nginx-25-directive map ...
Percona Toolkit 神器全攻略(复制类) ...
【Redis】Redis长期化之AOF详解(Redis ...
用宝塔将streamlit部署到服务器上,通 ...
华为云数据库首席专家谈分布式数据应用 ...
SSH远程登录与控制
标签云
存储
服务器
快速回复
返回顶部
返回列表