1. 首页 > 百货 > 玩具模型

Spark 如何在Kubernetes上运行Apache

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

面临的挑战

对于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 executorpod已经准备就绪。

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

Spark提交流程图

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

Spark Submit

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

Spark Operator

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

Spark Submit vs Spark Operator的主要命令

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

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

解决方案的详细信息

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

流程图如下:

解决方案流程图

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

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

Argo Workflows

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

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

监测

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

结语

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

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

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

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载者并注明出处:https://jmbhsh.com/wanjumoxing/36489.html

联系我们

QQ号:***

微信号:***

工作日:9:30-18:30,节假日休息