在项目中,您可以通过创建作业来进行任务开发。目前E-MapReduce数据开发支持的作业类型有:Shell、Hive、Hive SQL、Spark、SparkSQL、Spark Shell、Spark Streaming、MR、Sqoop、Pig 、Flink、Streaming SQL、Presto SQL和Impala SQL。
前提条件
新建作业
设置作业
各个具体作业类型的开发与设置,请参见作业部分。 以下介绍的是作业的基础设置、高级设置和告警设置。
执行作业
在新建的作业页面,单击右上方的运行来执行作业。
查看日志
作业运行后,您可以在页面下方的运行记录中,查看作业实例的运行日志。
单击运行记录右侧的详情,即可跳转至运维中心查看作业实例的详细信息。
作业可执行操作
在作业编辑区域,您可以在作业名称上单击右键,执行如下操作:
- 克隆作业:在相同文件夹下,克隆一个已经存在作业的配置。
- 重命名作业:重新命名作业名称。
- 删除作业:只有在作业没有关联工作流,或关联的工作流没有在运行或调度时中,才可以被删除。
作业提交模式说明
Spark-Submit进程(在数据开发模块中为启动器Launcher)是Spark的作业提交命令,用于提交Spark作业,一般占用600 MB以上内存。作业配置面板中的内存设置,用于设置Launcher的内存配额。
新版作业提交模式包括以下两种:
- 在Header/Gateway节点提交:Spark-Submit进程运行在Header节点上,不受YARN监控。Spark-Submit内存消耗大,作业过多会造成Header节点资源紧张,导致整个集群不稳定。
- 在Worker节点提交: Spark-Submit进程运行在Worker节点上,占用YARN的一个Container,受YARN监控。此模式可以缓解Header节点的资源使用。
在E-MapReduce集群中,作业实例消耗内存=Launcher消耗内存+用户作业(Job)消耗内存。对于Spark作业,Job消耗内存又可以进一步细分,即Job消耗内存 = spark-submit(指逻辑模块,非进程)消耗内存+driver端消耗内存+executor端消耗内存。作业配置不同,Driver端消耗的物理内存的位置也不同,详细说明如下:
- 如果Spark使用Yarn-Client模式,则Spark-Submit+Driver是在同一个进程中。在作业提交中,如果这个进程使用LOCAL模式,则这个进程是 Header节点上的一个进程,不受YARN监控。如果这个进程使用YARN模式,则这个进程是Worker节点上的一个进程,占YARN的一个 Container,受YARN监控。
- 如果Spark使用Yarn-Cluster模式,则Driver是独立的一个进程,占用YARN的一个Container,与Spark-Submit不在一个进程中。
综上所述,作业的提交节点决定了Spark-Submit进程是在Header节点还是Worker节点上运行,以及是否受YARN监控。Spark的Yarn-Client和Yarn-Cluster模式,决定了Driver是否与Spark-Submit在同一个进程中。
添加注解
进行数据开发时,您可以通过在作业内容里添加特定的注解来添加作业参数。注解的格式如下。
!!! @<注解名称>: <注解内容>
说明
!!!
必须顶格,并且每行一个注解。
当前支持的注解如下。
注解名称 | 说明 | 示例 |
---|---|---|
rem | 表示一行注释。 |
|
env | 添加一个环境变量。 |
|
var | 添加一个自定义变量。 |
|
resource | 添加一个资源文件。 |
|
sharedlibs | 添加依赖库,仅对Streaming SQL作业有效。包含多个依赖库时,依赖库间用英文半角逗号(,)隔开。 |
|
scheduler.queue | 设置提交队列。 |
|
scheduler.vmem | 设置申请内存,单位MB。 |
|
scheduler.vcores | 设置申请的核数。 |
|
scheduler.priority | 设置申请的优先级,取值范围为1~100。 |
|
scheduler.user | 设置提交用户名。 |
|
注意
使用注解时,需要注意以下事项:
- 无效注解将被自动跳过。例如,设置未知注解、注解内容不符合预期等。
- 注解中的作业参数优先级高于作业配置中的参数,如果作业注解和作业配置中有相同的参数,则以作业注解为准。
作业注解示例如下:

问题反馈
如果您在使用阿里云E-MapReduce过程中有任何疑问,欢迎您扫描下面的二维码加入钉钉群进行反馈。

在文档使用中是否遇到以下问题
更多建议
匿名提交