Spark是专为大规模数据处理而设计的快速通用的计算引擎,云原生数据仓库AnalyticDB MySQL版支持对接Spark引擎,提供分析AnalyticDB MySQL版数据库的能力。本文介绍如何创建及管理Spark集群。

注意事项

  • Spark功能正在灰度测试中,如需体验,请提交工单联系技术支持。
  • 创建AnalyticDB MySQL版集群后,才能创建Spark集群。创建AnalyticDB MySQL版集群的方法,请参见创建集群

创建Spark集群

  1. 使用阿里云账号登录云原生数据仓库AnalyticDB MySQL控制台
  2. 在页面左上角,选择集群所在地域。
  3. 在左侧导航栏,单击集群列表
  4. 3.0集群列表页签下,单击目标集群ID
  5. 在左侧导航栏,单击Spark管理 > 集群管理
  6. 在页面中间的提示对话框中,单击创建即可。
    说明
    • 计算节点个数选择上限为200,每个计算节点费用是5.6元/小时。
    • Spark集群创建时间大约需要10分钟,集群创建过程中,Spark相关功能都处于禁用状态。

集群管理

  1. 使用阿里云账号登录云原生数据仓库AnalyticDB MySQL控制台
  2. 在页面左上角,选择集群所在地域。
  3. 在左侧导航栏,单击集群列表
  4. 3.0集群列表页签下,单击目标集群ID
  5. 在左侧导航栏,单击Spark管理 > 集群管理
  6. 在Spark集群管理页,您可以进行如下操作:
    • 释放集群
      1. 节点信息区域,单击右上角释放集群
      2. 在弹出的对话框中,单击确定即可删除Spark集群。
    • 设置UI访问密码
      1. UI访问区域,单击右上角设置UI访问密码
      2. 设置UI访问密码面板中,设置如下配置。
        参数 说明
        账号名称

        设置UI的访问账号名称。账号名称需符合如下要求:

        • 以小写字母开头,以小写字母或数字结尾。
        • 由小写字母、数字或下划线(_)组成。
        • 长度为2~16个字符。
        密码 设置账号的密码。
        确认密码 再次输入密码。
      说明 您还可以在UI访问区域,单击Yarn来查看Yarn集群UI或单击History Server来查看详细监控UI信息。

资源管理

  1. 使用阿里云账号登录云原生数据仓库AnalyticDB MySQL控制台
  2. 在页面左上角,选择集群所在地域。
  3. 在左侧导航栏,单击集群列表
  4. 3.0集群列表页签下,单击目标集群ID
  5. 在左侧导航栏,单击Spark管理 > 资源管理
  6. 在Spark的资源管理页,您可以进行如下操作:
    • 上传文件:将包含Spark任务的JAR文件从本地上传至OSS目录。
    • 上传目录:将目录下的JAR文件批量上传。
    • 添加文件夹:添加文件夹来管理上传的JAR文件。
    • 删除资源:删除不需要的JAR文件。
    说明 上传后的文件可以预览、删除、下载等。单击复制路径,可以拷贝文件的OSS路径,用于在Airflow脚本中设置参数。更多详情,请参见Airflow集群

作业测试

  1. 使用阿里云账号登录云原生数据仓库AnalyticDB MySQL控制台
  2. 在页面左上角,选择集群所在地域。
  3. 在左侧导航栏,单击集群列表
  4. 3.0集群列表页签下,单击目标集群ID
  5. 在左侧导航栏,单击Spark管理 > 作业测试
  6. 作业测试页,您可以在命令行中提交SparkSQL作业或基于DataFrame API的JAR文件作业。具体语法和参数说明如下:
    • 提交包含SQL的Spark作业
      语法如下。
      {
          "sql" : "insert into testspark.target_table select * from testspark.source_table",
          "conf" : {
               "spark.adb.userName" : "userName",
               "spark.adb.password" : "password"
          }
      }
      表 1. 参数说明
      字段名 字段类型 是否必填 字段说明
      sql String 提交执行的SQL语句。
      说明 需在SQL语句中的表名前需加上所在数据库的库名。例如,在INSERT INTO testspark.target_table SELECT * FROM testspark.source_table语句中,testspark即为target_tablesource_table所在库的库名。
      conf Map 与开源Spark中的配置项相同,参数格式为key: value形式。
      说明 当SQL中包含需要访问AnalyticDB MySQL版的表或数据时,spark.adb.userNamespark.adb.password参数必填。
      name String Spark作业名称。为方便后续作业管理,建议设置该名称。
      driverMemory String 每个Driver进程使用的内存大小,默认为4 GB。
      driverCores Integer 每个Driver进程使用的CPU核数,默认为1 vcore。
      executorMemory String 每个Executor进程使用的内存大小,默认为4 GB。
      executorCores Integer 每个Executor使用的CPU内核数,默认为1 vcore。
      numExecutors Integer 指定作业使用的Executor个数,默认根据作业大小动态分配。
    • 提交基于DataFrame API编写的Spark作业
      语法如下。
      {
          "className":"org.apache.spark.examples.SparkPi",
          "args" : ["10"],
          "name":"JavaSparkPi",
          "file":"oss://xxx/jars/xxx.jar",
          "conf": {
               "spark.adb.userName" : "username",
               "spark.adb.password" : "password"
          }
      }
      表 2. 参数说明
      字段名 字段类型 是否必填 字段说明
      className String 基于DataFrame API编写的Spark作业的Java或者Scala程序入口类,例如org.apache.spark.examples.SparkPi
      args List<String> Spark作业传入的参数。
      name String Spark作业名称。为方便后续作业管理,建议设置该名称。
      file String Spark作业JAR文件的存储路径,即入口类所在的JAR文件。如何获取JAR文件存储路径,请参见集群管理
      conf Map 与开源Spark中的配置项相同,参数格式为key: value形式。
      说明 当SQL中包含需要访问AnalyticDB MySQL版的表或数据时,spark.adb.userNamespark.adb.password参数必填。
      driverMemory String 每个Driver进程使用的内存大小,默认为4 GB。
      driverCores Integer 每个Driver进程使用的CPU核数,默认为1 vcore。
      executorMemory String 每个Executor进程使用的内存大小,默认为4 GB。
      executorCores Integer 每个Executor使用的CPU内核数,默认为1 vcore。
      numExecutors Integer 指定作业使用的Executor个数,默认根据作业大小动态分配。
  7. 单击测试运行,检测上述步骤上传的JAR文件功能是否正常。
    说明 运行结束后,您还可以在Yarn集群UI查看JAR文件的测试结果。如何查看Yarn集群UI,请参见集群管理