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的处置方案相反。
Apache Spark是用于大数据处置的一致剖析引擎,特意适用于散布式处置。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运行程序并在Spark集群上启动运行程序的脚本。其具备的一些杰出的性能包括:
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是Kubernetes的上班流处置方案。重要好处是:
更具体的消息可以在其官网文档中找到。
一旦Prometheus把握了这些目的,就须要一些Grafana仪表板启动监测。ApacheSpark的自定义Grafana仪表板基于以下社区仪表板:
Empathy公司选用Spark Operator、ArgoCD和ArgoWorkflows在Kubernetes上创立Spark运行程序上班流处置方案,并经常使用GitOps流传更改。本文所展现的设置曾经在消费环境中经常使用了大概一个月的期间,并且反应很好。每个用户都对上班流程感到满意,而领有一个适用于任何云提供商的繁多上班流程,可以解脱了单个云计算提供商的锁定。
假设亲身启动测试,须要依照这些实践操作示例并享用从本地主机部署一些Spark运行程序的乐趣,以及本指南中形容的一切设置:Hands-on EmpathyRepo。
只管还有很长的路要走,但会有更多的收获。宿愿这一翻新能协助企业变得愈加与云有关。
本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/8333.html