作业编辑

<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.&nbsp; 登录<a href="http://ocftcloud.com/console/hadoop/overview" target="_blank">E-MapReduce控制台</a>。</p> <p>2.&nbsp; 单击左侧导航栏<strong>数据开发</strong>,进入<strong>项目列表</strong>页面。</p> <p>3.&nbsp; 单击目标项目名称,进入<strong>项目管理</strong>页签。</p> <p>4.&nbsp; 切换至<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.&nbsp; 弹出<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.&nbsp; 单击<strong>确认</strong>,进入目标作业的编辑页面。</p> <p>7.&nbsp; 在作业内容框中输入作业内容,中间出现实际运行项,将会显示实际运行的内容。</p> <p>8.&nbsp; 输入完成,单击<strong>保存</strong>。</p> <p><span style="font-size:16px"><strong>执行结果</strong></span></p> <p>保存完成后,保存按钮变暗,不可继续单击。新建完成后,进入作业编辑页面,您可以对作业进行相关操作。</p> <p>&nbsp;</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.&nbsp; 登录<a href="http://ocftcloud.com/console/hadoop/overview" target="_blank">E-MapReduce控制台</a>。</p> <p>2.&nbsp; 单击左侧导航栏<strong>数据开发</strong>,进入<strong>项目列表</strong>页面。</p> <p>3.&nbsp; 单击目标项目名称,进入<strong>项目管理</strong>页签。</p> <p>4.&nbsp; 切换至<strong>作业编辑</strong>页签,在<strong>作业列表</strong>区域单击目标作业后的<strong>︙</strong>图标,弹出操作选项框。</p> <p>5.&nbsp; 单击<strong>打开</strong>,进入目标作业页签。</p> <p>6.&nbsp; 在作业内容后单击<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>指定作业中引用参数的值,需要有两个步骤:先在代码里引用${变量名},然后在右侧作业配置栏中&ldquo;配置参数&rdquo;中增加key为变量名,value为变量值的一行记录。例如在作业中输入:select * from db1.table1 where name=${name} and age=${age};则要在&ldquo;配置参数&rdquo;中配置2个参数,name=paic和age=31。则该作业实际运行为:select * from db1.table1 where name=&quot;paic&quot; 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.&nbsp; 编辑完成,单击<strong>确认</strong>。</p> <p>&nbsp;</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>操作步骤&nbsp;</strong></span></p> <p>1.&nbsp; 登录<a href="http://ocftcloud.com/console/hadoop/overview" target="_blank">E-MapReduce控制台</a>。</p> <p>2.&nbsp; 单击左侧导航栏<strong>数据开发</strong>,进入<strong>项目列表</strong>页面。</p> <p>3.&nbsp; 单击目标项目名称,进入<strong>项目管理</strong>页签。</p> <p>4.&nbsp; 切换至<strong>作业编辑</strong>页签,在<strong>作业列表</strong>区域单击目标作业后的<strong>︙</strong>图标,弹出操作选项框。</p> <p>5.&nbsp; 单击<strong>打开</strong>,进入目标作业页签。</p> <p>6.&nbsp; 在作业内容后单击<strong>运行</strong>。</p> <p><img src="https://obs-cn-shanghai.ocftcloud.com/pacloud/20192708172045-13df8da69c69.png" style="height:424px; width:721px" /></p> <p>7.&nbsp;&nbsp; 弹出<strong>运行作业</strong>对话框,确认选择执行集群。</p> <p>8.&nbsp;&nbsp; 单击<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>&bull;&nbsp;&nbsp;&nbsp; 在目标作业页面下方,提示操作成功。</p> <p><img src="https://obs-cn-shanghai.ocftcloud.com/pacloud/20192708172108-16edad3396d3.png" style="height:46px; width:239px" /></p> <p>&bull;&nbsp;&nbsp;&nbsp;在作业内容区域下方运行记录中可查看和操作运行信息。&nbsp;</p> <p>&nbsp;</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.&nbsp;&nbsp; 准备好您要运行的Hive SQL语句。</p> <p>2.&nbsp;&nbsp; 根据新建作业的<strong>操作步骤</strong>选择Hive作业类型进行作业创建,作业内容输入步骤1中准备好的Hive SQL语句。</p> <p>3.&nbsp;&nbsp; 点击<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.&nbsp;&nbsp; 准备好您要运行的Spark SQL语句。</p> <p>2.&nbsp;&nbsp; 根据新建作业的<strong>操作步骤</strong>选择SparkSQL作业类型进行作业创建,作业内容输入步骤1中准备好的Spark SQL语句。</p> <p>3.&nbsp;&nbsp; 点击<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表中,作业内容参考&ldquo;输入1&rdquo;。</li> <li>导出:将集群Hive库default下的表 tb1中的数据导出到RDS-MySQL中数据库db1下的表tb2中,作业内容参考&ldquo;输入2&rdquo;。:</li> </ul> <p><strong>操作步骤</strong></p> <p>1.&nbsp; 准备好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.&nbsp;&nbsp; 根据新建作业的<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.&nbsp;&nbsp; 点击<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.&nbsp; 准备好您要运行的应用程序脚本和数据文件,并上传至OBS中,如WordCount.jar和WordCount.txt,上传至obs://test01: WordCount.jar,obs://test01: WordCount.txt。</p> <p>2.&nbsp; 根据新建作业的<strong>操作步骤</strong>选择Spark作业类型进行作业创建,作业内容输入如下:</p> <pre> <code>--class 'WordCount' WordCount.jar</code></pre> <p>3. 点击作业设置,设置运行资源。</p> <ul> <li>&nbsp;配置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.&nbsp;&nbsp; 准备好您要运行的应用程序脚本和数据文件,并上传至OBS中,如WordCount.jar和WordCount.txt,上传至obs://test01: WordCount.jar,obs://test01: WordCount.txt。</p> <p>2.&nbsp;&nbsp; 根据新建作业的<strong>操作步骤</strong>选择MR作业类型进行作业创建,作业内容输入如下:</p> <pre> <code>WordCount.jar WordCount</code></pre> <p>3.&nbsp;&nbsp; 点击作业设置,设置运行资源</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.&nbsp;&nbsp; 点击<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.&nbsp; 准备好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.&nbsp; 根据新建作业的<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.&nbsp; 点击<strong>运行</strong>,确认执行集群。</p> <p><strong>&nbsp;</strong></p> <p><strong>说明:</strong></p> <p>建议作业内容中的账号和密码使用作业配置,以确保安全性。详细请参考设置作业。</p> <p><strong>执行结果&nbsp;</strong></p> <ul> <li>作业运行成功时检查集群hive库表db1.tb1的datax01文件与RDS-MySQL库表db1.tb1的数据一致,RDS-MySQL数据同步成功。</li> <li>在作业内容区域下方运行记录中可查看和操作运行信息。</li> </ul>
以上内容是否解决了您的问题?
请补全提交信息!
联系我们

电话咨询

400-151-8800

邮件咨询

fincloud@ocft.com

在线客服

工单支持

解决云产品相关技术问题