创建CDH Spark节点

Spark是一个通用的大数据分析引擎,具有高性能、易用和普遍性等特点,可用于进行复杂的内存分析,构建大型、低延迟的数据分析应用。DataWorks为您提供CDH Spark节点,便于您在DataWorks上进行Spark任务的开发和周期性调度。本文为您介绍如何创建及使用CDH Spark节点。

前提条件

  • 数据开发(DataStudio)中已创建业务流程。

    数据开发(DataStudio)基于业务流程对不同开发引擎进行具体开发操作,所以您创建节点前需要先新建业务流程,操作详情请参见创建业务流程

  • 已创建阿里云CDH集群,并注册CDH集群至DataWorks。

    创建CDH相关节点并开发CDH任务前,您需要先将CDH集群注册至DataWorks工作空间,操作详情请参见注册CDH集群至DataWorks

  • (可选,RAM账号需要)进行任务开发的RAM账号已被添加至对应工作空间中,并具有开发空间管理员(权限较大,谨慎添加)角色权限,添加成员的操作详情请参见为工作空间添加空间成员

  • 已购买Serverless资源组并完成资源组配置,包括绑定工作空间、网络配置等,详情请参见新增和使用Serverless资源组

使用限制

支持Serverless资源组(推荐)或旧版独享调度资源组运行该类型任务。

准备工作:开发Spark任务并获取JAR包

在使用DataWorks调度CDH Spark任务前,您需要先在CDH中开发Spark任务代码并完成任务代码的编译,生成编译后的任务JAR包,CDH Spark任务的开发指导详情请参见Spark概述

说明

后续您需要将任务JAR包上传至DataWorks,在DataWorks中周期性调度CDH Spark任务。

步骤一:创建CDH Spark节点

  1. 进入数据开发页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

  2. 右键单击某个业务流程,选择新建节点 > CDH > CDH Spark

  3. 新建节点对话窗中,配置节点的引擎实例、路径、名称等信息。

  4. 单击确认 ,完成节点创建,后续您可在创建的节点中进行对应任务的开发与配置操作。

步骤二:创建并引用CDH JAR资源

您可以在创建的CDH Spark节点中引用JAR包资源,并编写CDH Spark节点代码,通过Spark Submit命令提交任务。具体操作如下:

  1. 创建CDH JAR资源。

    在对应业务流程中,右键单击CDH > 资源,选择新建资源 > CDH JAR,在新建资源对话框中点击上传,选择需要上传的文件。

    image.png

  2. 引用CDH JAR资源。

    1. 打开创建的CDH节点,停留在编辑页面。

    2. CDH > 资源 中,找到待引用的资源(示例为spark-examples_2.11_2.4.0.jar),右键单击资源名称,选择引用资源

      image.png

      引用资源后,若CDH节点的代码编辑页面出现##@resource_reference{""}格式的语句,表明已成功引用代码资源。示例如下:

      ##@resource_reference{"spark_examples_2.11_2.4.0.jar"}
      spark_examples_2.11_2.4.0.jar
    3. 修改CDH Spark节点代码,补充Spark Submit命令,修改后的示例如下。

      重要

      CDH Spark节点编辑代码时不支持注释语句,请务必参考如下示例改写任务代码,不要随意添加注释,否则后续运行节点时会报错。

      ##@resource_reference{"spark-examples_2.11-2.4.0.jar"}
      spark-submit --class org.apache.spark.examples.SparkPi --master yarn  spark-examples_2.11-2.4.0.jar 100

      其中:

      • org.apache.spark.examples.SparkPi:为您实际编译的JAR包中的任务主Class。

      • spark-examples_2.11-2.4.0.jar:为您实际上传的CDH JAR资源名称。

步骤三:配置任务调度

如果您需要周期性执行创建的节点任务,可以单击节点编辑页面右侧的调度配置,根据业务需求配置该节点任务的调度信息:

  • 配置任务调度的基本信息,详情请参见配置基础属性

  • 配置时间调度周期、重跑属性和上下游依赖关系,详情请参见时间属性配置说明配置同周期调度依赖

    说明

    您需要设置节点的重跑属性依赖的上游节点,才可以提交节点。

  • 配置资源属性,详情请参见配置资源属性。访问公网或VPC网络时,请选择与目标节点网络连通的调度资源组作为周期调度任务使用的资源组。详情请参见网络连通方案

步骤四:调试代码任务

  1. (可选)选择运行资源组、赋值自定义参数取值。

  2. 保存并运行SQL语句。

    在工具栏,单击保存图标,保存编写的SQL语句,单击运行图标,运行创建的SQL任务。

  3. (可选)冒烟测试。

    如果您希望在开发环境进行冒烟测试,可在执行节点提交,或节点提交后执行,冒烟测试,操作详情请参见执行冒烟测试

后续步骤

  1. 提交并发布节点任务。

    1. 单击工具栏中的图标,保存节点。

    2. 单击工具栏中的图标,提交节点任务。

    3. 提交新版本对话框中,输入变更描述

    4. 单击确定

    如果您使用的是标准模式的工作空间,任务提交成功后,需要将任务发布至生产环境进行发布。请单击顶部菜单栏左侧的任务发布。具体操作请参见发布任务

  2. 查看周期调度任务。

    1. 单击编辑界面右上角的运维,进入生产环境运维中心。

    2. 查看运行的周期调度任务,详情请参见查看并管理周期任务

    如果您需要查看更多周期调度任务详情,可单击顶部菜单栏的运维中心,详情请参见运维中心概述

相关场景

DataWorks平台提供了完善的作业调度和监控功能,确保您的Spark作业能够顺利提交到CDH集群执行。这种方式不仅简化了作业的运维流程,还使得资源管理更为高效,以下是一些Spark任务的应用场景:

  • 数据分析:利用Spark SQL、Dataset以及DataFrame API进行复杂的数据聚合、筛选和转换,快速洞察数据。

  • 流处理:利用Spark Streaming处理实时数据流,并进行即时分析和决策。

  • 机器学习任务:使用Spark MLlib进行数据预处理、特征提取、模型训练和评估。

  • 大规模ETL任务:进行大数据集的抽取、转换和加载,为数据仓库或其他存储系统准备数据。