作业管理
作业管理支持通过spark-submit脚本、spark SQL方式编写scala&python&java作业及SQL,提交集群运行、结果展示等功能;同时可以添加到工作流做周期定时调度。
入口:https://hbase.console.aliyun.com/hbase/cn-shanghai/workspace/job
创建作业
创建作业时,需要先选择一个可运行的集群。作业类型可以为“SparkJob”、“SparkSQL”
作业内容编写
SparkJob
spark作业内容就是spark-submit的命令行参数,由于平台和运行环境特性,spark作业支持的命令行参数是官方spark-submit的一个子集,不需要配置—master参数,具体格式和支持参数如下:
- 格式
[Options] <app jar | python file | R file> [app arguments]
- 参数
Options (参数) | 说明 |
---|---|
—class CLASS_NAME | Your application’s main class (for Java / Scala apps). |
—jars JARS | Comma-separated list of jars to include on the driver and executor classpaths. |
—py-files PY_FILES | Comma-separated list of .zip, .egg, or .py files to place on the PYTHONPATH for Python apps. |
—files FILES | Comma-separated list of files to be placed in the working directory of each executor. File paths of these files in executors can be accessed via SparkFiles.get(fileName). |
—driver-memory MEM | Memory for driver (e.g. 1000M, 2G) (Default: 1024M). |
—driver-cores NUM | Number of cores used by the driver, only in cluster mode (Default: 1). |
—executor-cores NUM | Number of cores per executor. (Default: 1). |
—executor-memory MEM | Memory per executor (e.g. 1000M, 2G) (Default: 1G). |
—num-executors NUM | Number of executors to launch (Default: 2). |
—name NAME | A name of your application. |
—conf PROP=VALUE | Arbitrary Spark configuration property. |
例子:一个简单的java pi demo:
--class org.apache.spark.examples.SparkPi
--driver-memory 2G
--driver-cores 1
--executor-memory 2G
--executor-cores 2
--num-executors 1
--name pi
/examples_2.11-2.3.2.jar
10000
SparkSQL
- 场景:在交互式查询调试好的SQL,如果需要上生产做周期调度可以添加到“SparkSQL”类型作业,然后在工作流里面配置周期定时调度。
- 注意:“SparkSQL”类型作业不支持sql结果展示,因为生产的周期调度SQL输出一般都是Spark的表,或者Cassandra、hbase、mongo、RDS等其他外表存储。
- 例子:这里“spark_mysql_table”是一张spark关联的mysql的表,这条sql可以每天周期的把mysql的数据归档存储到spark的数仓表”spark_warehouse_table”,同时每天的数据放在不同的分区中存储
作业参数设置
- 场景:为了方便调试以及作业的复用、周期调度,会需要在作业内容编辑通用变量,变量的值可以手动设置、或者根据调度的时间来自动生成。
- 普通参数:比如在作业设置的“自定义参数”中设置对应的参数名”pi_args”和value然后在作业配置中就可以使用${pi_args}来配置参数注意:参数的值也可以在工作流里面设置
- 自动时间参数:现支持的日期格式为4种
比如:下面作业传入${yyyyMMdd+2} 参数在实际运行的时候会被替换为“20191002”yyyyMMdd -> ${yyyyMMdd}或${yyyyMMdd+n}或${yyyyMMdd-n}
yyyy-MM-dd -> ${yyyy-MM-dd}或${yyyy-MM-dd+n}或${yyyy-MM-dd-n}
yyyy/MM/dd -> ${yyyy/MM/dd}或${yyyy/MM/dd+n}或${yyyy/MM/dd-n}
timestamp -> ${timestamp}或${timestamp+n}或${timestamp-n}
+n为增加n天,-n为减少n天 n只支持正整数
运行作业
点击运行时,如果当前region有多个集群,还可以再选择其它集群运行。
运行状态查看
- 可以点击刷新按钮,来实时刷新作业的运行结果列表。
- 点击“日志”可以查看作业的运行信息,特别是当提交作业失败时,可以方便定位问题。
- 当作业成功提交到后端开始运行后,也可以点击“Spark UI”进入Spark UI页面来查看作业运行详情。具体如何使用账号密码访问UI页面,可以查看通用的帮助文档:https://help.aliyun.com/document_detail/50510.html
- 点击“详情”,可以查看该作业提交时的命令行参数。
- 当任务在启动或运行过程中,可以点击“停止”来直接停止作业。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论