13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

如何在Kubernetes上运行ApacheSpark

如何在Kubernetes上运行Apache Spark

译文
作者:李睿 2021-08-09 09:00:00

开发

前端

云计算

Spark Empathy公司平台工程技术负责人Ramiro Alvarez Fernandez对于如何在Kubernetes上使用Spark以摆脱对云计算提供商的依赖,以及在Kubernetes上运行Apache Spark进行了介绍,并分享了这一过程的挑战、架构和解决方案等详细信息。

创新互联拥有网站维护技术和项目管理团队,建立的售前、实施和售后服务体系,为客户提供定制化的网站建设、成都网站制作、网站维护、四川雅安电信机房解决方案。为客户网站安全和日常运维提供整体管家式外包优质服务。我们的网站维护服务覆盖集团企业、上市公司、外企网站、商城网站建设、政府网站等各类型客户群体,为全球数千家企业提供全方位网站维护、服务器维护解决方案。

【51CTO.com快译】Empathy公司平台工程技术负责人Ramiro Alvarez Fernandez对于如何在Kubernetes上使用Spark以摆脱对云计算提供商的依赖,以及在Kubernetes上运行Apache Spark进行了介绍,并分享了这一过程的挑战、架构和解决方案等详细信息。

面临的挑战

对于Empathy公司来说,生产中运行的所有代码都必须与云计算无关。Empathy公司通过使用Spark解决方案克服了之前对云计算提供商提供的解决方案的依赖:例如,EMR(AWS场景)、Dataproc(GCP场景)和HDInsight(Azure场景)。

这些云计算提供商的不同解决方案提供了一种在云上部署Spark的简单方法。但是,当企业在扩大规模时会面临一些限制,从而需要解决以下这些问题:

这些是在实施Spark作业时面临的常见问题。使用Kubernetes解决这些问题可以节省工作人员的时间和精力,并提供更好的体验。

在Kubernetes上运行Apache Spark可以提供以下好处:

其好处与Empathy公司针对Kubernetes上运行的Apache Flink的解决方案相同。

在Kubernetes运行上的Apache Spark

Apache Spark是用于大数据处理的统一分析引擎,特别适用于分布式处理。Spark用于机器学习,是目前最大的技术趋势之一。

Apache Spark架构

Spark Submit可用于将Spark应用程序直接提交到Kubernetes集群。其流程如下:

(1)Spark Submit从客户端发送到主节点中的Kubernetes API服务器。

(2)Kubernetes将调度一个新的Spark Driver pod。

(3)Spark Driver pod将与Kubernetes通信以请求Spark executor pod。

(4)新的executor pod将由Kubernetes调度。

(5)一旦新的executor pod开始运行,Kubernetes会通知Spark Driver pod新的Spark executor pod已经准备就绪。

(6)Spark Driver pod将在新的Spark executor pod上调度任务。

Spark提交流程图

可以使用SparkSubmit(普通方式)或使用Spark Operator来安排Spark应用程序。

Spark Submit

Spark Submit是用于提交Spark应用程序并在Spark集群上启动应用程序的脚本。其具有的一些出色的功能包括:

Spark Operator

Spark Operator项目由谷歌公司开发,现在是一个开源项目。它使用Kubernetes自定义资源来指定、运行和显示Spark应用程序的状态。其具有的一些出色的功能包括:

Spark Submit vs Spark Operator的主要命令

上图显示了Spark Submit与Spark Operator的主要命令。

Empathy公司的解决方案更喜欢采用Spark Operator,因为它允许比Spark Submit更快的迭代,在Spark Submit中,必须为每个用例创建自定义Kubernetes清单。

解决方案的详细信息

为了解决挑战部分提出的问题,ArgoCD和Argo Workflows可以提供帮助,同时还有CNCF项目的支持。例如,可以从Kubernete调度最喜欢的Spark应用程序工作负载,以创建Argo Workflows并定义顺序作业。

流程图如下:

解决方案流程图

ArgoCD

ArgoCD是Kubernetes的GitOps持续交付工具。其主要好处是:

更详细的信息可以在其官方文档中找到。

Argo Workflows

Argo Workflows是Kubernetes的工作流解决方案。主要好处是:

更详细的信息可以在其官方文档中找到。

监测

一旦Prometheus掌握了这些指标,就需要一些Grafana仪表板进行监测。Apache Spark的自定义Grafana仪表板基于以下社区仪表板:

结语

Empathy公司选择Spark Operator、ArgoCD和Argo Workflows在Kubernetes上创建Spark应用程序工作流解决方案,并使用GitOps传播更改。本文所展示的设置已经在生产环境中使用了大约一个月的时间,并且反馈很好。每个用户都对工作流程感到满意,而拥有一个适用于任何云提供商的单一工作流程,可以摆脱了单个云计算提供商的锁定。

如果亲自进行测试,需要按照这些实际操作示例并享受从本地主机部署一些Spark应用程序的乐趣,以及本指南中描述的所有设置:Hands-on Empathy Repo。

虽然还有很长的路要走,但会有更多的收获。希望这一创新能帮助企业变得更加与云无关。


网站题目:如何在Kubernetes上运行ApacheSpark
转载源于:http://cdbrznjsb.com/article/cdjihss.html

其他资讯

让你的专属顾问为你服务