译文
作者:李睿 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的解决方案相同。
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 executor pod已经准备就绪。
(6)Spark Driver pod将在新的Spark executor pod上调度任务。
Spark提交流程图
可以使用SparkSubmit(普通方式)或使用Spark Operator来安排Spark应用程序。
Spark Submit是用于提交Spark应用程序并在Spark集群上启动应用程序的脚本。其具有的一些出色的功能包括:
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是Kubernetes的GitOps持续交付工具。其主要好处是:
更详细的信息可以在其官方文档中找到。
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://www.shufengxianlan.com/qtweb/news16/297716.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联