
# 通过DataArts Studio提交MRS Hive作业
HiveSql作业是基于Hive数据仓库工具编写和运行的数据分析任务，主要用于在Hadoop分布式集群上处理大规模结构化或半结构化数据。HiveSQL是Hive定义的SQL方言，语法与标准SQL类似，但针对大数据场景做了优化，可将SQL语句转换为MapReduce或Spark任务执行，适合非编程人员快速实现数据查询、统计和分析。
DataArts Studio作为一款强大的一站式数据处理平台，为用户提供了便捷、高效的Hive作业提交能力，让数据处理变得轻松简单。
通过DataArts Studio提交MRS Hive作业流程如[图1]所示。
图1MRS作业提交流程   
![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002316169812.png "点击放大")
表1通过DataArts Studio提交MRS作业流程说明 
| 阶段                  | 说明                                                                                                                                                                                 |
|:---|:---|
| 准备MRS集群             | DataArts Studio支持对接MRS Hive、HDFS、HBase、Spark、ClickHouse等大数据组件，可基于业务需求按需选择并创建包含有对应组件的MRS集群。                                                                                         |
| 初始配置DataArts Studio | DataArts Studio实例的虚拟私有云、子网、安全组信息，需与MRS集群保持一致。 MRS为非全托管服务，DataArts Studio无法直接与其进行连接。数据集成集群（CDM集群）提供了DataArts Studio与非全托管服务通信的代理，所以需提前准备一个CDM集群。    |
| 创建数据连接              | DataArts Studio基于管理中心的数据连接对数据湖底座进行数据开发、治理、服务和运营。建立数据连接用于作业运行时，DataArts Studio访问MRS集群内对应组件。                                                                                         |
| 开发脚本或应用程序           | 数据开发是一个一站式的大数据协同开发平台，提供全托管的大数据调度能力。 用户基于业务需求开发相关的SQL脚本作业或者Jar作业。                                                                                   |
| 编排调度作业              | DataArts Studio平台支持将多个脚本编排成一个作业，通过可视化方式构建工作流并定义节点依赖关系，实现数据采集、处理、分析等多个业务场景的串联运行。同时还能为作业配置自动化调度计划，支持灵活周期定时执行，搭配失败重试、告警通知等容错策略，让业务流程无需人工干预即可周期性自动运转，同步通过监控面板实时追踪作业状态，大幅提升数据处理的效率与稳定性。 |
| 运行作业并查看结果           | 用户可以直接通过运行结果查看作业运行情况。                                                                                                                                                              |
   
在本章节中以开发一个MRS HiveSQL作业为例进行介绍。
 #### 步骤1：准备MRS集群
1. 进入[购买MRS集群页面](https://console.huaweicloud.com/mrs/?#/clusterCreate/quick)。
2. 选择"快速购买"，填写软件配置参数。
   
   以购买一个开启Kerberos认证的包含Hive组件的MRS集群为例，关键参数配置如[表2]所示。
   更多MRS集群购买参数说明请参考[快速购买MRS集群](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0496.html)。
    表2创建MRS集群 
   | 参数名称       | 描述                                                                 | 取值样例            |
   |:---|:---|:---|
   | 计费模式       | 选择待创建的MRS集群的计费模式。                                                  | 按需计费            |
   | 集群名称       | 待创建的MRS集群名称。                                                       | MRS_demo        |
   | 集群类型       | 待创建的MRS集群类型。                                                       | 选择"自定义"         |
   | 版本类型       | 待创建的MRS集群版本类型。                                                     | LTS版            |
   | 集群版本       | 待创建的MRS集群版本。                                                       | MRS 3.2.0-LTS.1 |
   | 组件选择       | 选择待创建的MRS集群配套的组件。                                                  | Hadoop分析集群      |
   | 可用区        | 选择集群工作区域下关联的可用区。                                                   | 可用区1            |
   | 虚拟私有云      | 选择需要创建集群的VPC，单击"查看虚拟私有云"进入VPC服务查看已创建的VPC名称和ID。如果没有VPC，需要创建一个新的VPC。 | vpc-01          |
   | 子网         | 选择需要创建集群的子网，可进入VPC服务查看VPC下已创建的子网名称和ID。如果VPC下未创建子网，请单击"创建子网"进行创建。   | subnet-01       |
   | Kerberos认证 | 访问MRS集群时是否启用Kerberos认证。                                            | 开启              |
   | 密码         | 配置Manager管理员admin用户及集群ECS节点root用户的密码。                              | Test!@12345。    |
   | 企业项目       | 选择集群所属的企业项目。                                                       | default         |
      
   
   
3. 单击"立即购买"，等待MRS集群创建成功。
4. 集群状态变为"运行中"后，单击集群名称，进入集群详情页后选择"前往Manager"，然后继续选择一个弹性公网IP后，进入集群Manager登录界面。 
   更多MRS集群Manager界面登录方式介绍请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
5. 使用admin用户登录集群Manager界面，密码为[步骤 2]中设置的密码。
6. 选择"系统 \> 用户"创建一个具有Hive操作权限的业务用户。 
   由于当前集群已开启Kerberos认证，需在Manager界面中创建一个具有Hive作业提交权限的业务用户，请参考[创建MRS集群用户](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0345.html)。
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/notice_3.0-zh-cn.png)
   - MRS 3.1.0及之后版本集群，用户至少需具备Manager_viewer的角色权限才能在管理中心创建连接；如果需要对应组件的进行库、表、数据的操作，还需要添加对应组件的用户组权限。
   
   - MRS 3.1.0版本之前的集群，所创建的用户需要具备Manager_administrator或System_administrator权限，才能在管理中心创建连接。
   
   - 建议用户名的密码策略设置为永不过期，避免由于密码过期后导致连接失败，引起业务受损，请参考[配置MRS集群用户密码策略](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0430.html)。
    
   例如创建一个人机用户testuser，关联用户组"supergroup"及角色"System_administrator"。
   图2添加集群业务用户   
   ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002349694237.png "点击放大")
   
   
7. 用户创建成功后，选择界面右上角"admin \> 注销"，然后使用新创建的用户重新登录Manager，并按照界面提示修改初始密码。
 
 #### 步骤2：初始配置DataArts Studio
1. 登录DataArts Studio管理控制台，购买一个DataArts Studio实例。
   
   **DataArts Studio实例的虚拟私有云、子网、安全组信息，需与MRS集群保持一致。**
   具体操作请参考[购买DataArts Studio实例](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0115.html)。
   
   
2. 进入DataArts Studio实例概览信息页面，选择"空间管理 \> 创建工作空间"，创建一个工作空间。 
   DataArts Studio实例中系统会默认创建一个默认的工作空间"default"，并赋予用户为管理员角色。您可以使用默认的工作空间，也可以在"空间管理"页签中创建一个新的工作空间。
   具体操作请参考[创建简单模式工作空间](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0116.html)。
   
   
3. （可选）在DataArts Studio实例概览信息页面，选择当前工作空间下的"数据集成"，继续创建一个数据集成集群（CDM集群）。 
   非免费版的DataArts Studio实例赠送的数据集成集群，可以作为管理中心数据连接的Agent代理使用，因此如果[步骤 1]中购买了**DataArts Studio非免费版实例**，本步骤可忽略。
   新创建的CDM集群须和MRS集群**处于相同的区域、可用区，且使用同一个VPC和子网，安全组规则需允许两者网络互通或者使用同一个安全组**。
   更多关于CDM集群的创建操作请参考[购买批量数据迁移增量包](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0119.html)。
   图3创建CMD集群   
   ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002315884850.png "点击放大")
   
   
 
 #### 步骤3：创建MRS Hive数据连接
1. 在DataArts Studio实例概览信息页面，选择当前工作空间下的"管理中心"。
2. 在数据连接界面中选择"创建数据连接"，创建一个"MapReduce服务 （MRS Hive）"类型的数据连接。 
   表3MRS Hive数据连接 
   | 参数名称    | 描述                                                                                                                                                                                                                                                                                                                                                                                  | 取值样例        |
   |:---|:---|:---|
   | 数据连接名称  | 数据连接的名称，只能包含字母、数字、下划线和中划线，且长度不超过100个字符。                                                                                                                                                                                                                                                                                                                                             | mrs-hive    |
   | 适用组件    | 选择此连接适用的组件。                                                                                                                                                                                                                                                                                                                                                                         | 数据开发        |
   | 连接方式    | - 通过代理连接：通过Agent（即CDM集群）进行代理，以集群用户访问MRS集群。代理连接方式支持MRS所有版本的集群。  - MRS API连接：以MRS API的方式访问MRS集群。   为保证数据架构、数据质量、数据目录、数据服务等组件能够使用此MRS连接，此处连接方式推荐配置为"通过代理连接"。                                                           | 通过代理连接      |
   | 手动      | 选择连接模式，如果没有访问其他项目或企业项目下MRS集群的需求，使用集群名模式即可。 - 集群名模式：通过选择已有集群名称进行连接配置，仅可选择本项目内且企业项目相同的MRS集群进行连接。  - 连接串模式：通过手动输入Manager IP，并打通本连接Agent（即CDM集群）和MRS集群之间的网络，则可以访问其他项目或企业项目的MRS集群。   | 集群名模式       |
   | MRS集群名  | 选择[步骤1：准备MRS集群]中创建的MRS集群。                                                                                                                                                                                                                                                                                                                       | mrs-demo    |
   | KMS加密密钥 | 通过KMS加解密数据源认证信息，选择KMS中的任一默认密钥或自定义密钥即可。                                                                                                                                                                                                                                                                                                                                              | ims/default |
   | 绑定Agent | 选择[步骤2：初始配置DataArts Studio]中的CDM集群。                                                                                                                                                                                                                                                                                                            | cdm-a123    |
   | 用户名     | MRS集群的业务用户，选择[步骤1：准备MRS集群]中创建的MRS集群业务用户。                                                                                                                                                                                                                                                                                                        | testuser    |
   | 密码      | MRS集群业务用户的密码。                                                                                                                                                                                                                                                                                                                                                                       | -           |
   | 开启ldap  | 当MRS Hive对接了外部LDAP时，连接Hive时需要使用LDAP账号与密码进行认证，此时须开启此参数，否则会连接失败。                                                                                                                                                                                                                                                                                                                      | 否           |
      
   更多关于DataArts Studio数据连接的配置说明及约束信息，请参考[创建DataArts Studio数据连接](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1299.html)。
   
   
3. 参数配置完成后，单击"保存 "，系统会自动检查数据连接的连通性。
 
 #### 步骤4：开发Hive SQL脚本
1. 在DataArts Studio实例概览信息页面，选择当前工作空间下的"数据开发"。
2. 在"脚本开发"页面中的"脚本"目录上右键，选择"新建Hive SQL脚本"。 
   图4新建HiveSQL脚本   
   ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002349861949.png)
   
   
3. 在编辑器中输入SQL语句，通过SQL语句来实现业务需求。
   
   例如开发一个脚本如下：
   在Hive中新创建一个数据库及数据表。
   ```
   -- 创建数据库
   CREATE DATABASE IF NOT EXISTS test_db;
   -- 使用数据库
   USE test_db;
   -- 创建数据表
   CREATE TABLE IF NOT EXISTS test_table (
       id INT,
       name STRING,
       age INT,
       gender STRING
   )
   ROW FORMAT DELIMITED
   FIELDS TERMINATED BY ',';
   ```
   脚本开发完成后，设置开发区右上角的运行配置参数后，单击画布上方的"运行"可查看脚本执行情况与执行结果。
   - 数据连接：选择[步骤3：创建MRS Hive数据连接]中创建的MRS Hive连接。
   
   - 数据库：选择Hive中的数据库。
   
   - 资源队列：运行Hive作业任务时使用的资源队列信息，若不设置默认使用集群的default队列。
   
   
   
   
4. 脚本开发完成后，选择"保存"，保存当前脚本。
5. 参考[步骤 3]继续开发其他脚本。
   
   例如继续开发一个脚本如下：
   在Hive表插入一行数据并查询。
   ```
   -- 使用数据库
   USE test_db;
   -- 插入单行数据
   INSERT INTO test_table VALUES (1, 'Zhangsan', 30, 'Male');
   -- 查看数据表内容
   SELECT * FROM test_table;
   ```
   
   
 
#### 步骤5：编排调度作业
1. 在DataArts Studio实例概览信息页面，选择当前工作空间下的"数据开发"。
2. 在"作业开发"页面中的"作业"目录上右键，选择"新建作业"。
3. 配置作业参数并选择"确定"，创建一个批处理作业。 
   表4DataArts Studio作业配置参数 
   | 参数名称  | 描述                                                                                                                                                                                                                                                                                                                                                                                                     | 取值样例                     |
   |:---|:---|:---|
   | 作业名称  | 自定义作业的名称，只能包含英文字母、数字、中文、"-"、"_"、"."，且长度为1～128个字符。                                                                                                                                                                                                                                                                                                                                                      | job_test                 |
   | 作业类型  | - 批处理作业：按调度计划定期处理批量数据，主要用于实时性要求低的场景。批作业是由一个或多个节点组成的流水线，以流水线作为一个整体被调度。被调度触发后，任务执行一段时间必须结束，即任务不能无限时间持续运行。  - 实时处理作业：处理实时的连续数据，主要用于实时性要求高的场景。实时作业是由一个或多个节点组成的业务关系，每个节点可单独被配置调度策略，而且节点启动的任务可以永不下线。在实时作业里，带箭头的连线仅代表业务上的关系，而非任务执行流程，更不是数据流。   | 批处理                      |
   | 模式    | - Pipeline：即传统的流水线式作业，作业通过画布编辑，可以拖入一个或多个节点组成作业，各节点依次被流水线式地执行。  - 单任务：单任务作业可以认为是有且只有一个节点的批处理作业，整个作业即为一个脚本节点。                                                                                                                               | Pipeline                 |
   | 选择目录  | 选择作业所属的目录，默认为根目录。                                                                                                                                                                                                                                                                                                                                                                                      | /作业/                     |
   | 责任人   | 填写该作业的责任人。                                                                                                                                                                                                                                                                                                                                                                                             | -                        |
   | 作业优先级 | 选择作业的优先级，提供高、中、低三个等级。 作业优先级是作业的一个标签属性，不影响作业的实际调度执行的先后顺序。                                                                                                                                                                                                                                                                                                                | 高                        |
   | 委托配置  | 作业执行过程中，以IAM委托的身份与其他服务交互。 若工作空间已配置过委托，则新建的作业默认使用该工作空间级委托。                                                                                                                                                                                                                                                                                                               | -                        |
   | 日志路径  | 选择作业日志的OBS存储路径。                                                                                                                                                                                                                                                                                                                                                                                        | obs://test/dataarts-log/ |
   | 作业描述  | 作业的描述信息。                                                                                                                                                                                                                                                                                                                                                                                               | -                        |
      
   更多关于DataArts Studio作业的配置说明及约束信息，请参考[新建DataArts Studio作业](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0434.html)。
   
   
4. 作业创建成功后，进入到作业开发编排页面。 
   拖动左侧节点库中所需的节点到画布中，鼠标移动到节点图标上，选中连线图标，然后单击节点配置相关的属性参数。
   例如在本示例中，配置两个MRS Hive SQL节点并连线，执行作业时，系统将依次执行两个指定的SQL脚本。
   图5编排DataArts Studio作业   
   ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002349827577.png "点击放大")
   关键属性说明：
   - 节点名称：默认显示为SQL脚本"hive_sql"的名称，支持修改。
   
   - SQL脚本：选择[步骤4：开发Hive SQL脚本]中开发完成的Hive SQL脚本。
   
   - 数据连接：选择[步骤3：创建MRS Hive数据连接]中创建的MRS Hive连接。
   
   - 数据库：默认选择SQL脚本中设置的数据库，支持修改。
   
   - 其他作业参数保持默认，或者根据业务需求进行调整。
   
   
   更多关于DataArts Studio作业开发参数配置说明，请参考[DataArts Studio作业开发](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0432.html)。
   
   
5. 作业编排完成后，单击画布上方的"测试运行"，会弹出测试参数配置的弹框，自动显示作业的变量参数，单击"确定"，测试作业。 
   如果测试未通过，请您查看作业节点的运行日志，进行定位处理。
   图6测试DataArts Studio作业运行   
   ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002314434522.png "点击放大")
   在本示例中，通过日志可查看到成功在表"test_table"中插入了数据。
   ```
   ...
   1,Zhangsan,30,Male
   ```
   
   
6. 作业运行成功后，单击画布空白处，在右侧的"调度配置"页面，配置作业的调度策略。 
   DataArts Studio作业支持多种调度方式，例如可配置当前作业在指定时间段内的每天固定时间自动运行。
   图7DataArts Studio作业调度配置   
   ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002314598406.png "点击放大")
   更多关于DataArts Studio作业调度方式和约束限制说明，请参考[DataArts Studio调度作业](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0470.html)。
   
   
7. 配置完成后，单击画布上方的"提交"，提交版本并勾选是否在下个调度周期使用新版本。 
   在提交版本时，单击"版本对比"可以查看当前提交版本与最近一个版本之间的差异对比。
   作业提交后，单击"执行调度"，然后在数据开发页面的"运维调度 \> 作业监控"页面，即可查看当前作业的调度状态及历史执行结果。
   图8查看作业状态   
   ![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002314814762.png "点击放大")
   
   
 
#### 相关文档
- 关于DataArts Studio平台更多数据开发实践案例，请参考[DataArts Studio数据开发进阶实践](https://support.huaweicloud.com/bestpractice-dataartsstudio/dataartsstudio_05_0100.html)。
- 更多关于DataArts Studio作业开发操作说明及注意事项，请参考[作业开发流程](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0432.html)。
- 如需通过API方式新增并执行作业，具体操作请参见[新增并执行作业](https://support.huaweicloud.com/api-mrs/CreateExecuteJob.html)。
- 更多MRS应用开发样例程序，请参见[MRS应用开发指南](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_010000.html)。
 
