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