登录
注册
个人信息
我的订单
我的报告豆
我的优惠券
我的笔记
我的阅读
我的收藏
我的下载
我的上传
我的订阅
在线客服
退出登录
回到首页
AI
搜索
发现报告
发现数据
发现专题
专题报告
专题百科
研选报告
定制报告
VIP
权益
发现大使
发现一下
行业研究
公司研究
宏观策略
财报
招股书
会议纪要
seedance2.0
低空经济
DeepSeek
AIGC
大模型
当前位置:首页
/
行业研究
/
报告详情
3-3 Spark on K8s 在阿里云上的实践
信息技术
2022-07-18
DataFunSummit2022:多维分析架构峰会
在路上
Spark on K8s在阿里云上的实践总结
01 Spark on K8s介绍
Spark的集群部署模式
:包括Hadoop YARN(生产环境常用)、Standalone(不适用生产环境)、Apache Mesos(使用者减少)和Kubernetes(直接使用K8s调度,2021年GA)。
Spark部署在K8s的优势
:统一运维方式、提高资源利用率、云上弹性、容器化优势(依赖管理、多版本支持、升级友好)。
Spark on K8s部署架构
:
方式一:使用原生spark-submit
:无需K8s集群内预装组件,但Client端需安装Spark环境并配置kubectl,运行流程包括创建Driver Pod、申请Executor Pod、清理Pod。
方式二:使用spark-on-k8s-operator
(最常用):需预装spark-operator,通过kubectl提交yaml文件,Operator监听事件并提交Spark作业,支持定时调度、作业管理、监控等功能。
对比
:原生方式符合用户习惯、支持交互式作业、集成性好;Operator方式便于作业管理、支持重试和定时执行、自动清理资源。
Spark on K8s社区进展
:从Spark 2.3首次支持到3.2的持续优化,包括自定义Pod模板、Dynamic Allocation、节点下线支持、PVC重用等特性。
Spark on K8s重点特性
:
自定义Pod模板
(SPARK-24434):通过
podTemplateFile
提升配置灵活性,支持远程存储。
Dynamic Allocation无ESS支持
(SPARK-27963):通过ShuffleTracking实现无ESS的Dynamic Allocation,但Executor回收效率低。
节点下线支持
(SPARK-20624):通过preStop hook和数据迁移支持节点优雅下线。
PVC重用
(SPARK-35416):Executor和Driver生命周期分别对应PVC生命周期,提升性能。
02 Spark on K8s在阿里云EMR的优化和最佳实践
EMR Spark on ACK介绍
:采用虚拟集群方式,支持RSS集群类型和常驻节点池+弹性ECI部署。
充分利用云上弹性优势
:
弹性实例调度
:通过ECI实现秒级启动、按需付费,成本降低35%-40%,性能提升10%-20%。
抢占式ECI
:进一步节省成本,适用于批处理场景,需配合Decommission特性优化效率。
使用RSS优化shuffle和动态资源
:
Spark Shuffle挑战
:依赖本地存储、Dynamic Allocation受限、写放大、随机读、高网络连接数、数据单副本丢失。
阿里云Remote Shuffle Service(RSS)
:独立服务保存Shuffle数据,支持Push Shuffle、HA、多副本,完美支持Dynamic Allocation,TPC-DS测试单/双副本分别比ESS快23.5%/13.8%。
增强K8s作业级别调度
:
K8s调度挑战
:粒度是Pod而非Application、无Driver资源限制、排队顺序问题、缺乏统一视图、多租户支持不佳。
阿里云ACK增强
:通过Gang scheduling、Capacity Scheduling、Kube-queue实现按App粒度调度、多租户队列、优先级和公平调度。
云上数据湖存储与加速
:
Spark on K8s更适合存储计算分离
:OSS替代HDFS,具备高可靠、免运维、低成本等特点。
Jindo SDK无缝对接OSS
:内置Jindo SDK,引擎无缝读写OSS。
Fluid加速OSS访问
:K8s原生引擎,支持大数据和AI应用缓存加速,TPC-DS场景提升30%左右。
使用DLF构建云上数据湖
:无缝对接DLF实现元数据管理(Hive Metastore)、数据入湖(Sqoop)、权限管理(Ranger)、交互式查询(Hue)等Hadoop生态组件。
易用性提升
:
spark-operator作业支持spark-submit提交
:融合两种方式优点,支持交互式shell和本地依赖。
HistoryServer透出Spark日志
:通过云上日志服务收集日志并透出HistoryServer,延续Spark用户体验。
你可能感兴趣
曹伟-K8s上的数据库私有云之旅:KubeBlocks架构设计与实践
商贸零售
ArchSummit深圳2024|全球架构师峰会
2024-07-05
5-4 Apache Spark 在自助分析系统的应用实践与优化
商贸零售
DataFunSummit2022:现代数据栈技术峰会
2022-11-02
6-5 Spark 读写 Iceberg 在腾讯的实践和优化
商贸零售
DataFunSummit2022:多维分析架构峰会
2022-07-18
曹伟:KubeBlocks在K8s上运行生产级的OceanBase
商贸零售
OceanBase
2024-08-23
阿里云SelectDB在巨益科技电商中台的实践和探索
商贸零售
巨益科技
2024-04-25