为Apache Spark使用Ocean上的气流编排Spark管道

在Kubernetes上运行Apache Spark应用程序有很多好处,但大规模运营和管理Kubernetes却很困难重大的挑战数据团队。随着Spot的Kubernetes解决方案套件最近增加了Ocean for Apache Spark,数据团队拥有了Kubernetes的强大功能和灵活性,而不存雷电竞官网进入在复杂性。作为一种云原生管理服务,Ocean Spark为Spark-on- kubernetes自动化云基础设施和应用程序管理。

Ocean Spark设计为开发人员友好型,内置集成了流行的数据工具,包括调度解决方案,如气流和Jupyter笔记本电脑。雷电竞官网进入有多种方式运行Spark应用程序dota2雷竞技规则

  • 您可以连接Jupyter笔记本与Spark交互工作
  • 您可以使用调度程序提交Spark应用程序,如气流,Azure数据工厂,Kubeflow, Argo, Prefect,或只是一个简单的CRON作业。
  • 你也可以直接打电话给Ocean SparkREST API可以从任何地方提交Spark应用程序,从而实现与基础设施、CI/CD工具等的自定义集成。

在本教程中,我们将向您展示如何连接企业客户中最流行的编排服务Apache气流,并说明如何在Ocean for Apache Spark上调度和监控工作流和管道。

我们将使用AWS服务Managed Workflows for Apache workflow (MWAA)作为我们的主要示例,因为它易于设置并处理底层基础设施的可伸缩性、可用性和安全性管理。但是这些说明很容易适应运行气流的其他方式。

(可选)为Apache气流设置Amazon托管工作流(MWAA)

Amazon S3桶用于存储Apache气流有向无环图(dag),自定义插件在一个plugins.zip文件中的Python依赖项文件。请确保将S3桶配置为禁止所有公共访问,桶版本控制启用并位于与Amazon MWAA环境相同的AWS区域。

下图显示了如何在S3上设置存储不同工件的位置。

请按照说明操作在这里来同步git存储库和S3之间的文件

安装和配置海洋火花气流提供程序

在MWAA中,您可以提供一个requirements.txt文件,列出您想要安装的所有python包。你应该包括ocean-spark-airflow-provider包,也就是可用。在气流的其他发行版上,您可以通过运行简单地安装此包PIP安装ocean-spark-airflow提供商

这个开源包(参见github库)提供了一个OceanSparkOperator,我们稍后将向您展示,以及一个配置如何与OceanSpark对话的连接。

请输入如下所示的连接详细信息。您可以从Admin ->连接->添加一个新记录(+号),并从连接类型下拉菜单中选择Ocean For Apache Spark。

在连接窗口中输入以下详细信息,然后单击Save。

  • Connection Id:默认为ocean_spark_default。您可以使用不同的名称。
  • 连接类型:在下拉菜单中选择“Ocean For Apache Spark”
  • 描述:输入任意可选文本描述连接。
  • 集群Id: Ocean Spark集群的Id
  • Account Id:集群所属的Spot Account Id,对应云提供商帐户。
  • API令牌:你的Spot by NetApp API令牌(请参阅如何创建API令牌

在气流dag中使用海洋火花操作器

在气流中,DAG -或有向无环图-是您想要运行的任务的集合,以反映它们的关系和依赖关系的方式组织为图。气流只会开始运行一个任务,一旦它所有的上游任务完成。

当您使用Ocean Spark Operator定义气流任务时,该任务包括在Ocean Spark上运行Spark应用程序。例如,您可以并行运行多个独立的Spark管道,并且只有在并行管道完成后才运行最终的Spark(或非Spark)应用程序。

DAG中的最后一个Spark作业将在两个并行作业完成后执行。

DAG在Python脚本中定义,该脚本将DAG结构(任务及其依赖项)表示为代码。在使用MWAA时,您应该将DAG python脚本上传到S3 DAGs文件夹中。下面是一个由单个Spark作业组成的DAG示例。

文件上传到S3 DAGs文件夹后,DAG将在几分钟内出现在MWAA环境中

单击Run运行DAG。Spark应用程序将在您的Spot环境中开始运行几分钟(注意:您可以通过配置减少这个启动时间净空高度).

一旦应用程序完成,您应该看到DAG在MWAA环境中成功完成。

注意:如果您想为连接指定一个不同的名称,而不是默认名称(ocean_spark_default),请使用OceanSparkOperator的conn_id参数。

开始为Apache Spark使用Ocean

气流只是几个内置集成之一Ocean for Apache Spark支持数据团队使用Kubernetes运行Spark应用程序。了解如何使用Ocean Spark轻松设置、配置和扩展Spark应用程序和Kubernetes集群。安排初次会面与我们的Apache Spark解决方案架构师团队一起,我们雷电竞官网进入可以讨论您的用例,并帮助您成功登录我们的平台。