更新时间:2022-02-24 GMT+08:00

开发一个Spark作业

在本章节用户可以学习到数据开发模块资源管理、作业编辑等功能。

场景说明

用户在使用DLI服务时,大部分时间会使用SQL对数据进行分析处理,有时候处理的逻辑特别复杂,无法通过SQL处理,那么可以通过Spark作业进行分析处理。本章节通过一个例子演示如何在数据开发模块中提交一个Spark作业。

操作流程如下:

  1. 创建DLI集群,通过DLI集群的物理资源来运行Spark作业。
  2. 获取Spark作业的演示JAR包,并在数据开发模块中关联到此JAR包。
  3. 创建数据开发模块作业,通过DLI Spark节点提交Spark作业。

环境准备

  • 已开通对象存储服务OBS,并创建桶,例如“s3a://dlfexample”,用于存放Spark作业的JAR包。
  • 已开通数据湖探索服务DLI,并创建Spark集群“spark_cluster”,为Spark作业提供运行所需的物理资源。

获取Spark作业代码

本示例使用的Spark作业代码来自maven库(下载地址:Spark作业代码),下载spark-examples_2.10-1.1.1.jar,此Spark作业是计算π的近似值。

  1. 获取Spark作业代码JAR包后,将JAR包上传到OBS桶中,存储路径为“s3a://dlfexample/spark-examples_2.10-1.1.1.jar”
  2. 数据开发模块控制台的左侧导航栏,选择配置管理 > 资源管理。在数据开发模块中创建一个资源关联到1的JAR包,资源名称为“spark-example”

    图1 创建资源

提交Spark作业

用户需要在数据开发模块中创建一个作业,通过作业的DLI Spark节点提交Spark作业。

  1. 创建一个DLF空作业,作业名称为“job_spark”

    图2 创建作业

  2. 然后进入作业开发页面,拖动DLI Spark节点到画布并单击,配置节点的属性。

    图3 配置节点属性

    关键属性说明:

    • DLI集群名称:•已开通数据湖探索服务DLI,并创建Spark集...中创建的Spark集群。
    • 作业运行资源:DLI Spark节点运行时,限制最大可以使用的CPU、内存资源。
    • 作业主类:DLI Spark节点的main class,本例的main class是“org.apache.spark.examples.SparkPi”
    • Jar包资源:2中创建的资源。

  3. 作业编排完成后,单击,测试运行作业。

    图4 作业日志(仅参考)

  4. 如果日志运行正常,单击保存作业。