作业编辑
<p><a name="新建作业"><span style="font-size:16px"><strong>新建作业</strong></span></a></p>
<p>在项目中,目前您可以创建 Hive、SparkSQL、Sqoop、Spark、MR、DataX类型的作业。</p>
<p><span style="font-size:16px"><strong>前提条件</strong></span></p>
<p>您已成功创建项目,可参考<a href="https://www.ocftcloud.com/ssr/help/Big_Data/EMR/Operation_Guide.Data_development.Project_management">创建项目</a>。</p>
<p><span style="font-size:16px"><strong>操作步骤</strong></span></p>
<p>1. 登录<a href="http://ocftcloud.com/console/hadoop/overview" target="_blank">E-MapReduce控制台</a>。</p>
<p>2. 单击左侧导航栏<strong>数据开发</strong>,进入<strong>项目列表</strong>页面。</p>
<p>3. 单击目标项目名称,进入<strong>项目管理</strong>页签。</p>
<p>4. 切换至<strong>作业编辑</strong>,在<strong>作业列表</strong>区域单击<strong>作业</strong>。</p>
<p><img src="https://obs-cn-shanghai.ocftcloud.com/pacloud/20192708171823-1eb7071f9e23.png" style="height:183px; width:830px" /></p>
<p>5. 弹出<strong>添加作业</strong>对话框,根据如下信息,新建作业。</p>
<table border="1" cellpadding="0" cellspacing="0" style="width:810px">
<tbody>
<tr>
<td style="background-color:#ededed; vertical-align:top; width:133px">
<p><strong>配置项</strong></p>
</td>
<td style="background-color:#ededed; vertical-align:top; width:671px">
<p><strong>说明</strong></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; width:133px">
<p>所属项目</p>
</td>
<td style="vertical-align:top; width:671px">
<p>自动生成,无法编辑。</p>
</td>
</tr>
<tr>
<td style="vertical-align:top; width:133px">
<p>所属文件夹</p>
</td>
<td style="vertical-align:top; width:671px">
<p>自动生成,无法编辑。</p>
</td>
</tr>
<tr>
<td style="vertical-align:top; width:133px">
<p>作业名称</p>
</td>
<td style="vertical-align:top; width:671px">
<p>名称不能为空,且不超过20个字符,不能包含特殊字符。</p>
</td>
</tr>
<tr>
<td style="vertical-align:top; width:133px">
<p>作业描述</p>
</td>
<td style="vertical-align:top; width:671px">
<p>作业的描述信息,不超过100个字符。</p>
</td>
</tr>
<tr>
<td style="vertical-align:top; width:133px">
<p>作业类型</p>
</td>
<td style="vertical-align:top; width:671px">
<p>提供Hive、SparkSQL、Sqoop、Spark、MR、DataX的作业类型。</p>
</td>
</tr>
</tbody>
</table>
<p>6. 单击<strong>确认</strong>,进入目标作业的编辑页面。</p>
<p>7. 在作业内容框中输入作业内容,中间出现实际运行项,将会显示实际运行的内容。</p>
<p>8. 输入完成,单击<strong>保存</strong>。</p>
<p><span style="font-size:16px"><strong>执行结果</strong></span></p>
<p>保存完成后,保存按钮变暗,不可继续单击。新建完成后,进入作业编辑页面,您可以对作业进行相关操作。</p>
<p> </p>
<p><a name="设置作业"><span style="font-size:16px"><strong>设置作业</strong></span></a></p>
<p><span style="font-size:16px"><strong>操作步骤</strong></span></p>
<p>1. 登录<a href="http://ocftcloud.com/console/hadoop/overview" target="_blank">E-MapReduce控制台</a>。</p>
<p>2. 单击左侧导航栏<strong>数据开发</strong>,进入<strong>项目列表</strong>页面。</p>
<p>3. 单击目标项目名称,进入<strong>项目管理</strong>页签。</p>
<p>4. 切换至<strong>作业编辑</strong>页签,在<strong>作业列表</strong>区域单击目标作业后的<strong>︙</strong>图标,弹出操作选项框。</p>
<p>5. 单击<strong>打开</strong>,进入目标作业页签。</p>
<p>6. 在作业内容后单击<strong>作业设置</strong>,弹出<strong>作业设置</strong>对话框,根据如下信息进行设置。</p>
<p><strong>作业概要</strong></p>
<table border="1" cellpadding="0" cellspacing="0" style="width:806px">
<tbody>
<tr>
<td style="background-color:#ededed; vertical-align:top; width:72px">
<p><strong>配置项</strong></p>
</td>
<td style="background-color:#ededed; vertical-align:top; width:728px">
<p><strong>说明</strong></p>
</td>
</tr>
<tr>
<td style="vertical-align:top; width:72px">
<p>作业名称</p>
</td>
<td style="vertical-align:top; width:728px">
<p>创建作业时设置的名称,在编辑时不可修改。</p>
</td>
</tr>
<tr>
<td style="vertical-align:top; width:72px">
<p>作业类型</p>
</td>
<td style="vertical-align:top; width:728px">
<p>创建作业时设置的作业类型,编辑作业概要时不可修改。</p>
</td>
</tr>
<tr>
<td style="vertical-align:top; width:72px">
<p>作业描述</p>
</td>
<td style="vertical-align:top; width:728px">
<p>创建作业时设置的作业描述,编辑作业概要时不可修改。</p>
</td>
</tr>
<tr>
<td style="vertical-align:top; width:72px">
<p>运行失败重试次数</p>
</td>
<td style="vertical-align:top; width:728px">
<p>设置在工作流运行到该作业失败时,重试的次数。直接在作业编辑页面运行作业,该选项不会生效。</p>
</td>
</tr>
</tbody>
</table>
<p><strong>运行资源</strong></p>
<p>运行当前作业需要提供的jar包路径,该jar包路径是可以是E-MapReduce HDFS宿主机上的一个绝对路径,也可以是OBS上的路径。但是放在E-MapReduce HDFS上的jar包会随着集群的释放而变得不可用,推荐将资源先上传至OBS,再在作业设置运行资源中选中将该资源的OBS路径粘贴到文本框中,即可直接在作业中引用该资源。</p>
<p><strong>配置参数</strong></p>
<p>指定作业中引用参数的值,需要有两个步骤:先在代码里引用${变量名},然后在右侧作业配置栏中“配置参数”中增加key为变量名,value为变量值的一行记录。例如在作业中输入:select * from db1.table1 where name=${name} and age=${age};则要在“配置参数”中配置2个参数,name=paic和age=31。则该作业实际运行为:select * from db1.table1 where name="paic" and age=31;</p>
<p><img src="https://obs-cn-shanghai.ocftcloud.com/pacloud/20201106142427-1ac72b889254.png" style="height:462px; width:830px" /></p>
<p>7. 编辑完成,单击<strong>确认</strong>。</p>
<p> </p>
<p><a name="执行作业"><span style="font-size:16px"><strong>执行作业</strong></span></a></p>
<p><span style="font-size:16px"><strong>前提条件</strong></span></p>
<p>您已成功关联集群,可参考关联集群。</p>
<p><span style="font-size:16px"><strong>操作步骤 </strong></span></p>
<p>1. 登录<a href="http://ocftcloud.com/console/hadoop/overview" target="_blank">E-MapReduce控制台</a>。</p>
<p>2. 单击左侧导航栏<strong>数据开发</strong>,进入<strong>项目列表</strong>页面。</p>
<p>3. 单击目标项目名称,进入<strong>项目管理</strong>页签。</p>
<p>4. 切换至<strong>作业编辑</strong>页签,在<strong>作业列表</strong>区域单击目标作业后的<strong>︙</strong>图标,弹出操作选项框。</p>
<p>5. 单击<strong>打开</strong>,进入目标作业页签。</p>
<p>6. 在作业内容后单击<strong>运行</strong>。</p>
<p><img src="https://obs-cn-shanghai.ocftcloud.com/pacloud/20192708172045-13df8da69c69.png" style="height:424px; width:721px" /></p>
<p>7. 弹出<strong>运行作业</strong>对话框,确认选择执行集群。</p>
<p>8. 单击<strong>确认</strong>,完成运行设置<strong>。</strong></p>
<p><strong>说明:</strong></p>
<ul>
<li>您可以在作业内容区域下方<strong>实际运行</strong>中查看实际运行内容以作参考。</li>
<li>您可以在运行记录中查看执行作业的<strong>详情</strong>和<strong>日志</strong>。</li>
</ul>
<p><span style="font-size:16px"><strong>执行结果</strong></span></p>
<p>• 在目标作业页面下方,提示操作成功。</p>
<p><img src="https://obs-cn-shanghai.ocftcloud.com/pacloud/20192708172108-16edad3396d3.png" style="height:46px; width:239px" /></p>
<p>• 在作业内容区域下方运行记录中可查看和操作运行信息。 </p>
<p> </p>
<p><a id="作业说明" name="作业说明"><strong><span style="font-size:16px">作业说明</span></strong></a></p>
<p><strong><span style="font-size:16px">Hive作业</span></strong></p>
<p>目前Hive作业内容仅支持简短的SQL语句。Hive作业在E-MapReduce 后台会将您输入的SQL语句写入temp.sql,然后以如下方式提交运行:</p>
<pre>
<code>hive -f temp.sql</code></pre>
<p><strong>操作步骤</strong></p>
<p>1. 准备好您要运行的Hive SQL语句。</p>
<p>2. 根据新建作业的<strong>操作步骤</strong>选择Hive作业类型进行作业创建,作业内容输入步骤1中准备好的Hive SQL语句。</p>
<p>3. 点击<strong>运行</strong>,确认执行集群。</p>
<p><strong>执行结果</strong></p>
<p>在作业内容区域下方运行记录中可查看和操作运行信息。</p>
<p><strong><span style="font-size:16px">SparkSQL作业</span></strong></p>
<p>目前SparkSQL作业内容仅支持简短的SQL语句。SparkSQL作业在E-MapReduce 后台会将您输入的SQL语句写入temp.sql,然后以如下方式提交运行:</p>
<pre>
<code>spark-sql -f temp.sql</code></pre>
<p><strong>操作步骤</strong></p>
<p>1. 准备好您要运行的Spark SQL语句。</p>
<p>2. 根据新建作业的<strong>操作步骤</strong>选择SparkSQL作业类型进行作业创建,作业内容输入步骤1中准备好的Spark SQL语句。</p>
<p>3. 点击<strong>运行</strong>,确认执行集群。</p>
<p><strong>执行结果</strong></p>
<p>在作业内容区域下方运行记录中可查看和操作运行信息。</p>
<p><span style="font-size:16px"><strong>Sqoop作业</strong></span></p>
<p>Sqoop作业在E-MapReduce 后台使用以下的方式提交:</p>
<pre>
<code>Sqoop [USER_CONTENT]</code></pre>
<ul>
<li>USER_CONTENT:用户输入的作业内容。</li>
</ul>
<p>下面是一个Sqoop作业完成导入导出的示例:</p>
<ul>
<li>导入:将RDS-MySQL中数据库db1下的表tb1的数据导入到集群Hive数据库default下的tb1表中,作业内容参考“输入1”。</li>
<li>导出:将集群Hive库default下的表 tb1中的数据导出到RDS-MySQL中数据库db1下的表tb2中,作业内容参考“输入2”。:</li>
</ul>
<p><strong>操作步骤</strong></p>
<p>1. 准备好RDS-MySQL实例,在实例下创建库db1,表tb1和tb2,tb1中插入或导入大量数据。假设实例信息如下:</p>
<ul>
<li>访问域名:my2j23gp.mysql.db.cloud.papub</li>
<li>端口:3880</li>
<li>用户:root</li>
<li>密码:@root123</li>
</ul>
<p>2. 根据新建作业的<strong>操作步骤</strong>选择Sqoop作业类型进行作业创建,作业内容输入如下:</p>
<p>输入1:</p>
<pre>
<code>import --connect jdbc:mysql://my2j23gp.mysql.db.cloud.papub:3880/db1 --username root --password @root123 --table tb1 --hive-database default --hive-import --hive-table tb1 -m 1 --fields-terminated-by '\t'</code></pre>
<p>输入2:</p>
<pre>
<code>export --connect jdbc:mysql://my2j23gp.mysql.db.cloud.papub:3880/db1 --username root --password @root123 --table tb2 --export-dir /apps/hive/warehouse/default.db/tb1 --input-null-string '\\N' --input-null-non-string '\\N' --input-fields-terminated-by '\t'</code></pre>
<p>3. 点击<strong>运行</strong>,确认执行集群。</p>
<p><strong>说明:</strong></p>
<p>建议作业内容中的账号和密码使用作业配置,以确保安全性。详细请参考设置作业。</p>
<p><strong>执行结果</strong></p>
<ul>
<li>输入1运行成功时检查集群Hive库表default.tb1中的数据文件内容与RDS-MySQL中的库表db1.tb1全表数据一致,RDS-MySQL数据同步成功。</li>
<li>输入2运行成功时检查RDS-MySQL中的库表db1.tb2中的数据与Hive库表文件default.tb1数据一致,Hive库表数据同步成功。</li>
<li>在作业内容区域下方运行记录中可查看和操作运行信息。</li>
</ul>
<p><strong><span style="font-size:16px">Spark作业</span></strong></p>
<p>Spark作业在E-MapReduce 后台使用以下的方式提交:</p>
<pre>
<code>spark-submit [USER_CONTENT]</code></pre>
<ul>
<li>USER_CONTENT:用户输入的作业内容,请填写spark-submit命令行参数。</li>
</ul>
<p>下面以一个WordCount作业为例:</p>
<p><strong>操作步骤</strong></p>
<p>1. 准备好您要运行的应用程序脚本和数据文件,并上传至OBS中,如WordCount.jar和WordCount.txt,上传至obs://test01: WordCount.jar,obs://test01: WordCount.txt。</p>
<p>2. 根据新建作业的<strong>操作步骤</strong>选择Spark作业类型进行作业创建,作业内容输入如下:</p>
<pre>
<code>--class 'WordCount' WordCount.jar</code></pre>
<p>3. 点击作业设置,设置运行资源。</p>
<ul>
<li> 配置OBS路径,以分号分隔资源:</li>
</ul>
<pre>
<code>obs://test01: WordCount.jar;obs://test01: WordCount.txt</code></pre>
<ul>
<li>配置输出路径,设置HDFS路径,如:</li>
</ul>
<pre>
<code>/output/wordcount</code></pre>
<p>4. 点击<strong>运行</strong>,确认执行集群。</p>
<p><strong>执行结果</strong></p>
<ul>
<li>查询集群输出路径/output/wordcount下的文件内容有正确计数结果。</li>
<li>在作业内容区域下方运行记录中可查看和操作运行信息。</li>
</ul>
<p><strong><span style="font-size:16px">MR作业</span></strong></p>
<p>MR作业在E-MapReduce 后台使用以下的方式提交:</p>
<pre>
<code>hadoop jar [USER_CONTENT]</code></pre>
<ul>
<li>USER_CONTENT:用户输入的作业内容。</li>
</ul>
<p>下面以一个WordCount作业为例:</p>
<p><strong>操作步骤</strong></p>
<p>1. 准备好您要运行的应用程序脚本和数据文件,并上传至OBS中,如WordCount.jar和WordCount.txt,上传至obs://test01: WordCount.jar,obs://test01: WordCount.txt。</p>
<p>2. 根据新建作业的<strong>操作步骤</strong>选择MR作业类型进行作业创建,作业内容输入如下:</p>
<pre>
<code>WordCount.jar WordCount</code></pre>
<p>3. 点击作业设置,设置运行资源</p>
<ul>
<li>配置OBS路径,以分号分隔资源:</li>
</ul>
<pre>
<code>obs://test01: WordCount.jar;obs://test01: WordCount.txt</code></pre>
<ul>
<li>配置输出路径,设置HDFS路径,如:</li>
</ul>
<pre>
<code>/output/wordcount</code></pre>
<p>4. 点击<strong>运行</strong>,确认执行集群。</p>
<p><strong>执行结果</strong></p>
<ul>
<li>查询集群输出路径/output/wordcount下的文件内容有正确计数结果。</li>
<li>在作业内容区域下方运行记录中可查看和操作运行信息。</li>
</ul>
<p><strong><span style="font-size:16px">DataX作业</span></strong></p>
<p>DataX作业可以实现数据同步,DataX作业内容仅支持执行正确JSON格式的配置文件内容,DataX作业在E-MapReduce 后台会将您输入的内容写入example.json,然后以如下方式提交运行:</p>
<pre>
<code>python datax.py example.json</code></pre>
<p>下面以一个DataX作业为例,完成RDS-MySQL库表db1.tb1数据同步到集群Hive库表db1.tb1的test01文件中。</p>
<p><strong>操作步骤</strong></p>
<p>1. 准备好RDS-MySQL实例,在实例下创建库db1,表tb1,tb1中插入或导入大量数据。假设实例信息如下:</p>
<ul>
<li>访问域名:my2j23gp.mysql.db.cloud.papub</li>
<li>端口:3880</li>
<li>用户:root</li>
<li>密码:@root123</li>
</ul>
<p>2. 根据新建作业的<strong>操作步骤</strong>选择MR作业类型进行作业创建,作业内容输入DataX作业脚本,如下:</p>
<pre>
<code>{
"job": {
"content": [{
"reader": {
"name": "mysqlreader",
"parameter": {
"column": [
"*"
],
"connection": [{
"jdbcUrl": [
"jdbc:mysql:// my2j23gp.mysql.db.cloud.papub:3880/db1"
],
"table": [
" tb1"
]
}],
"password": "@root123",
"username": "root"
}
},
"writer": {
"name": "hdfswriter",
"parameter": {
"column": [{
"name": "id",
"type": "BIGINT"
},
{
"name": "test1",
"type": "VARCHAR"
},
{
"name": "test2",
"type": "VARCHAR"
}
],
"compress": "gzip",
"defaultFS": "hdfs://10.25.74.157:8020",
"fieldDelimiter": "\t",
"fileName": "datax01",
"fileType": "text",
"path": "/apps/hive/warehouse/db1.db/tb1",
"writeMode": "append"
}
}
}],
"setting": {
"speed": {
"channel": "2"
}
}
}
}
</code></pre>
<p>3. 点击<strong>运行</strong>,确认执行集群。</p>
<p><strong> </strong></p>
<p><strong>说明:</strong></p>
<p>建议作业内容中的账号和密码使用作业配置,以确保安全性。详细请参考设置作业。</p>
<p><strong>执行结果 </strong></p>
<ul>
<li>作业运行成功时检查集群hive库表db1.tb1的datax01文件与RDS-MySQL库表db1.tb1的数据一致,RDS-MySQL数据同步成功。</li>
<li>在作业内容区域下方运行记录中可查看和操作运行信息。</li>
</ul>
提交成功!非常感谢您的反馈,我们会继续努力做到更好!