Apache火花3.1版本:火花Kubernetes现在投入使用

与Apache火花3.1版本在2021年3月,火花Kubernetes项目现在正式宣布生产就绪和投入使用。这是3年的成就蓬勃发展的社区贡献和采用的项目——因为最初支持Spark-on-Kubernetes添加火花2.3(2018年2月)。在本文中,我们将复习火花3.1的主要特点,特别注重Kubernetes的改进。

相关资源:雷竞技rabet官网

Spark-on-Kubernetes旅程:从β支持在2.3至3.1成为新的标准

Kubernetes成为新的调度器选择火花(除了纱,便和独立模式)与火花2.3在2018年初,由于少数大公司的项目像RedHat牵头,Palantir,谷歌,布隆伯格和Lyft。这最初的支持是实验,缺乏特色和患有稳定性和性能问题。

因为这个日期、社区支持蓬勃发展与许多或大或小的公司吸引了Kubernetes的好处:

  1. 本机集装箱化。使用码头工人包你的依赖关系(和火花本身)看到我们的优化码头工人图片火花
  2. 有效的资源共享和更快的应用程序的启动时间。
  3. 一个丰富的开源生态系统减少云提供商和供应商

主要功能是导致项目——PySpark & R等基本要求的支持,客户端模式和体积坐骑在2.4中,这样的强大的优化动态分配(3.0)和更好的处理节点关闭(3.1)。在过去的3年中,超过500个补丁(改进和错误修正)贡献了总让火花Kubernetes更加稳定和高性能。

火花在Kubernetes

改进的时间表Spark-on-Kubernetes项目

因此,Kubernetes日益视为新标准在2021年为新的火花项目资源管理器,我们可以告诉流行的开源Spark-on-Kubernetes运营商项目,或者最近公告的主要厂商采用代替Hadoop纱。

3.1与火花,Spark-on-Kubernetes项目现在被认为是普遍可用,生产就绪。在70个bug修复和性能改进导致了这个最新版本的项目。现在让我们深入最有效的特性,我们的客户都在热切盼望。

更好的处理节点关闭——优雅的遗嘱执行人退役(新的火花3.1特性)

这个特性(火星- 20624)是实现霍尔顿Karau,目前只有Kubernetes和独立部署。它被称为“更好的处理节点关闭”,虽然“优雅的遗嘱执行人退役”也是一个好名字。

这个特性使得火花更健壮和高效处理节点。之前确保现场发生中断,洗牌和缓存的数据移动,因此引发应用程序可以继续影响最小。发生点杀时,这个特性之前,洗牌文件丢失,因此需要重新计算(通过重新运行可能很长的任务)。这个功能不需要设置外部洗牌服务(这需要昂贵的按需运行存储节点,并兼容Kubernetes)。这是更容易描述图片。

优雅的节点退役——一个新的火花3.1特性,使得现货杀死Apache火花更健壮。目前仅可在Kubernetes &独立模式。

它做什么?

  1. 消失的执行人是黑名单——火花司机不会安排新任务。引发当前任务运行不强行打断,但是如果他们失败(由于执行人死亡),任务将在另一个执行人重试(今天一样),和他们的失败都不会计入失败的最大数量(新)。
  2. 洗牌执行人消失的文件和缓存的数据迁移到另一个执行者。如果没有其他遗嘱执行人(例如我们删除唯一的遗嘱执行人,在那里),您可以配置一个对象存储(S3)后备存储
  3. 一旦完成后,遗嘱执行人死了,应用程序可以继续unimpacted火花!

这什么时候开始吗?

  • 当你使用现货/抢占式节点,云提供商(gcp aws, azure)现在给你一个通知提前60 - 120秒。火花现在可以使用这个时期为了节省我们宝贵的洗牌文件!相同的机制也适用于当一个云提供商实例为其他原因,如ec2维护事件
  • 排水Kubernetes节点时(例如维护)或火花执行人舱驱逐(例如更高优先级的pod)抢占。
  • 当一个执行人被作为动态分配的一部分,在缩减规模,因为遗嘱执行人是空闲的。缓存和洗牌文件将保存在这里。

我怎么能打开呢?

  • 配置标志。4主要火花配置打开spark.decommission.enabled, spark.storage.decommission.rddBlocks.enabled, spark.storage.decommission.shuffleBlocks.enabled spark.storage.decommission.enabled。
    我推荐的源代码看其他可用的配置。
  • 由云提供商警告的能力,节点消失(例如由于现货杀死)需要一个特定的集成。我们建议调查NodeTerminationHandler项目AWS,GCP,Azure。如果你是一个现货,NetApp客户,请注意我们照顾为你工作

新卷选择Kubernetes火花

由于火花2.4,您可以安装3类型的卷在使用火花Kubernetes:

  • 一个emptyDir最初:一个空目录,pod的一生。这是用于临时存储。这可能是由节点的磁盘,固态硬盘或网络存储。
  • 一个hostpath:挂载目录从底层节点吊舱。
  • 预先创建一个静态PersistentVolumeClaim。这是一个Kubernetes抽象为各种类型的持久性存储,比如AWSEBS,Azure磁盘GCP的,或者持续的磁盘。提前创建了PersistentVolumeClaim必须由用户,及其生命周期不是绑在豆荚。

火花3.1支持两个新选项——NFS,动态创建PersistentVolumeClaims。

NFS是一个体积,可以共享许多豆荚同时,和可预填充数据。所以这是一个你可以交换数据的方式,代码,在火花应用程序配置,或者在司机和执行者在给定应用程序火花。Kubernetes不运行NFS服务器,您可以运行它自己,或使用一个云服务(比如AWSEFS,质量Filestore,或者Azure文件)。

一旦你创建了NFS共享,现在很容易引发3.1山在火花应用程序通过使用火花配置:

spark.kubernetes.driver.volumes.nfs.myshare.mount.path = /共享
spark.kubernetes.driver.volumes.nfs.myshare.mount.readOnly = false
spark.kubernetes.driver.volumes.nfs.myshare.options.server = nfs.example.com
spark.kubernetes.driver.volumes.nfs.myshare.options.path = /存储/共享

第二个新选项,动态PVC,只是一个更友好的方式使用持久的卷。以前,您必须pre-create PVC,然后安装。如果您使用的是动态分配,你不知道有多少执行人可能期间创建应用程序的执行,这是很难做的。你还必须清理PersistentVolumeClaims当他们成为闲置,或接受浪费存储资源。雷竞技rabet官网

3.1引发,一切都是动态的和自动化。当你提交一个火花应用程序(或当你请求新的执行人在动态分配),Kubernetes PersistentVolumeClaims是动态创建的,将自动提供的新PersistentVolumes存储类你有要求(例如AWSEBS,Azure磁盘GCP的,或者持续的磁盘)。豆荚被删除时,相关资源会被自动销毁。雷竞技rabet官网

其他引发3.1特性:PySpark UX,阶段调度、性能提高

除了火花Kubernetes GA,引发3.1带来了许多值得注意的特性。在这里我们要专注于一些主要的一个。

PySpark developer用户体验已经收到了两大改进与火花3.1:

  • 的PySpark文档已经收到了一个完整的设计使它更多的神谕的和用户友好。点击这里查看详情!
  • 类型提示支持现在意味着你应该接受免费代码完成和静态错误检测你的IDE。
下面是一个例子的IDE自动完成功能avaialble PySpark用户从Apache 3.1火花

火花历史服务器可以渲染火花UI应用程序完成后将显示统计信息结构化流查询你跑。

阶段安排(火星- 27495)只适用于纱线和Kubernetes部署当启用动态分配。它允许您控制您的代码的数量和类型执行人粒度的资源请求一个舞台。具体地说,您可以配置您的应用程序使用执行人cpu在应用程序的第一阶段(说,ETL和准备数据),然后在第二阶段使用gpu应用程序(说,火车毫升模型)。

在性能方面,火花3.1洗牌散列连接的性能有所提高,并添加新规则子表达式消除和催化剂的优化器。对于PySpark用户来说,内存中的柱状格式Apache箭头2.0.0版本现在与火花绑定(而不是1.0.2),这将使你的应用程序的速度,特别是如果你倾向于火花和熊猫dataframes之间转换数据。好消息是,你将受益于这些免费的性能改进,,而不需要任何代码或配置更改。

结论

引发3.1是一个令人兴奋的释放Apache火花,庆祝的成就多年的社区支持Spark-on-Kubernetes集成、支持标记为一般可用,生产就绪。这不是给我们一个惊喜在现货NetApp——我们已经帮助客户迁移到我们的原生云火花平台(已部署到一个托管的Kubernetes集群内部客户云账户),不断取得伟大成绩的开发经验和性能/成本降低。如果你想启动一个与我们POC,与我们的团队取得联系链接。

除了火花Kubernetes GA,优雅的退役特性实现的愿景完全将计算资源与存储,并使成本效益的现货实例的使用更稳定的火花。我们最初的测试功能非常有前途,我们很快就会发布一个故事的我们的一个大客户使用该功能,所以请继续关注!

下载我们的免费指导”,自动定量和6其他Kubernetes自动化挑战”