在Kubernetes上使用Apache Spark实现大规模的可靠性能

下载幻灯片

Kubernetes是一个开源的容器化框架,它使得在孤立环境中大规模管理应用程序变得容易。在Apache Spark 2.3中,Spark引入了与Kubernetes的本地集成支持。Palantir从一开始就深入参与了Spark的Kubernetes集成的开发,我们最大的生产部署现在平均每天运行约500万个Spark pod,作为数万个Spark应用程序的一部分。

在我们将部署从YARN迁移到Kubernetes的冒险过程中,我们已经克服了许多性能、成本和可靠性障碍:由于容器中的文件系统缓存更小而导致shuffle性能的差异;Kubernetes的CPU限制导致运行许多Java线程的容器的意外节流;缺乏对动态配置的支持,导致资源浪费。我们将简要描述我们开发和部署Spark-on- kubernetes的故事,以及在生产中部署容器化Spark应用程序的经验教训。

我们还将介绍我们最近的开源扩展(https://github.com/palantir/k8s-spark-scheduler)到Kubernetes调度程序,以更好地支持Spark工作负载和促进Spark感知集群自动伸缩;我们在Kubernetes上有限的动态分配实现;以及支持动态资源管理和大规模稳定性能所需的持续工作(即,我们与社区在可插拔外部shuffle服务API上的合作)。我们希望我们的经验教训和正在进行的工作能够帮助其他想要在Kubernetes上使用Spark来处理自己工作负载的社区成员。

试着砖
查看更多Spark + AI欧洲峰会2019视频


«回来
将曼宁
关于威尔·曼宁

Palantir

Will是Palantir的高级架构师,也是其计算平台的全球负责人。bob体育客户端下载在过去的5年里,他领导或广泛参与了Palantir在Apache Spark上的工作,以及到Parquet的迁移,到YARN上的Spark迁移,以及最近到Kubernetes上的Spark迁移。他最近的工作主要集中在通过改进调度和自动伸缩来优化用户感知的性能。

谢清海简介

Palantir

Matthew是Palantir的一名软件工程师,他在Spark上进行了超过4年的各种实验和生产工作流程的开发。他是Spark的贡献者,也是Spark与Kubernetes集成的主要开发人员之一。