更新时间:2026-08-05 GMT+08:00
分享

在Hive脚本中使用参数并进行作业调度

本章节介绍如何在数据开发模块上开发一个Hive脚本并进行作业调度的示例。

开发Hive SQL脚本

  1. 登录数据治理中心DataArts Studio控制台。
  2. 选择一个实例进入后,选择工作空间“数据开发”。
  3. 在左侧菜单栏选择“数据开发 > 脚本开发”。
  4. 创建一个Hive SQL脚本,脚本名称为“hive_test”。
  5. 编写Hive SQL脚本。编写以下Hive脚本,该脚本包含参数传递。假设我们要从一个表中选择数据并插入到另一个表中。

    -- 定义参数
    SET output_path = '${output_path}';
    
    -- 创建目标表(如果不存在)
    CREATE TABLE IF NOT EXISTS target_table (
        id INT,
        name STRING,
        description STRING
    );
    
    -- 插入数据
    INSERT INTO target_table
    SELECT id, name, description
    FROM source_table
    WHERE id > 100;

  6. 保存并提交版本。
  7. 运行脚本。

开发MRS Hive SQL作业并执行调度

  1. 登录数据治理中心DataArts Studio控制台。
  2. 选择一个实例进入后,选择工作空间“数据开发”。
  3. 在左侧菜单栏选择“数据开发 > 作业开发”。创建批处理的Pipeline作业。
  4. 在作业画布中,从左侧节点列表中拖动“MRS Hive SQL”节点到画布上,配置MRS Hive SQL节点参数。

    配置“SQL脚本”参数,需要新建Hive SQL脚本或者引用已创建的Hive SQL脚本。新建时,单击编写Hive SQL脚本,该脚本包含参数传递。假设我们要从一个表中选择数据并插入到另一个表中:
    -- 定义参数
    SET output_path = '${output_path}';
    
    -- 创建目标表(如果不存在)
    CREATE TABLE IF NOT EXISTS target_table (
        id INT,
        name STRING,
        description STRING
    );
    
    -- 插入数据
    INSERT INTO target_table
    SELECT id, name, description
    FROM source_table
    WHERE id > 100;
    • 如果没有已创建好的脚本,单击“新建”按钮(),创建Hive SQL脚本,并引用该脚本。
    • 如果已创建好的脚本,直接引用已创建Hive SQL脚本。(开发Hive SQL脚本已创建)
    • 引用已创建的Hive SQL脚本时,数据连接、数据库等参数信息会自动同步已关联的脚本配置信息。

  5. 配置参数传递。配置Hive SQL节点参数。

    1. 单击“作业参数配置”页签,添加一个参数。
    2. 参数名称设置为output_path。
    3. 参数值设置为Hive SQL脚本中需要的输出路径,例如 /user/your_username/hive_output。

  6. 保存并提交版本。
  7. 单击“执行调度”运行作业。
  8. 查看运行结果。

    在“批作业监控”页面,确保作业运行成功。单击作业前面的,在操作列查看MRS Hive SQL节点的运行日志信息。

    例如,日志信息可能如下:

    INFO  : Compiling command(queryId=hive_20231005144532_12345678-1234-1234-1234-1234567890ab): ...... 
    INFO  : Semantic Analysis Completed
    INFO  : Returning Hive schema: Schema(fieldSchemas:[FieldSchema(name:id, type:int, comment:null), FieldSchema(name:name, type:string, comment:null), FieldSchema(name:description, type:string, comment:null)], properties:null)
    INFO  : Completed compiling command(queryId=hive_20231005144532_12345678-1234-1234-1234-1234567890ab); Time taken: 0.097 seconds
    INFO  : Executing command(queryId=hive_20231005144532_12345678-1234-1234-1234-1234567890ab): ......
    INFO  : Starting task [Stage-0:MOVE] in serial mode
    INFO  : Loading data to table default.target_table from hdfs://your_hdfs_path
    INFO  : Table default.target_table stats: [numFiles=1, numRows=0, totalSize=1234, rawDataSize=0]
    INFO  : Completed executing command(queryId=hive_20231005144532_12345678-1234-1234-1234-1234567890ab); Time taken: 0.123 seconds
    INFO  : OK

相关文档