首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark 2.2/2.3/2.4 的 Dynamic Resource Allocation

Spark 2.2/2.3/2.4 的 Dynamic Resource Allocation

作者头像
runzhliu
发布2020-08-05 16:12:22
5650
发布2020-08-05 16:12:22
举报
文章被收录于专栏:容器计算容器计算容器计算

文章目录

  • 1 Overview
  • 2 Comparison
  • 3 Summary

1 Overview

因为有计划将 K8S 上的 Spark 2.2 升级到更新的版本,关于动态资源扩展,是一个比较关心的问题。

2 Comparison

先看看目前 Spark 2.4.3 里 KubernetesClusterSchedulerBackend 是怎么写的。

image_1dcmhocdohi9urj145v1l3l1dk59.png-41kB
image_1dcmhocdohi9urj145v1l3l1dk59.png-41kB

所以说,这部分的工作在是在 Feature Work 里的,不知道 3.0 会不会有?

再来看看 Spark on K8S 分支上的。

image_1dcmhupoo8a5e2cefs3f1ahgm.png-111.7kB
image_1dcmhupoo8a5e2cefs3f1ahgm.png-111.7kB

看看 Spark on K8S 文档里,关于实现的设计。KubernetesExternalShuffleService 可以允许 Spark 进行动态资源分配的模式。 Executor 上的 Shuffle 服务可以把文件持久化,这样在进行 scale up 的操作的时候,这些计算文件就不会丢失了。其设计是通过在每个 node 节点上,通过 K8S 的 DaemonSet 来运行这个 shuffle 服务。

Shuffle 服务的 Pod 和 Executor Pod 通过 hostPath 共享磁盘,这样需要每个 Executor 必须知道相同 Node 上的 shuffle 服务 Pod 的 IP 地址。

spark.kubernetes.shuffle.service.labels
spark.kubernetes.shuffle.namespace

通过指定这两个参数,KubernetesClusterSchedulerBackend 可以配置 Executor Pod 连接同一个 Node 节点上 shuffle 服务。

此外 KubernetesExternalShuffleService 还实现了 K8S 的 Watch 等 API,用于错误检测,并且可以在错误发生的时候删除无效文件。

3 Summary

所以说,升级的时候需要谨慎,目前 2.2 是支持 Dynamic Resource Allocation 的,但是自从 2.3 可以支持基础 K8S 功能,目前相关 Feature 还在开发中,有兴趣的同学可以留意一下这个 JIRA

image_1dcnhcuf21h9klcg184ebnrh3j13.png-139.7kB
image_1dcnhcuf21h9klcg184ebnrh3j13.png-139.7kB
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1 Overview
  • 2 Comparison
  • 3 Summary
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档