本节介绍如何将作业中配置的参数传递到脚本文件中。

问题

在E-MapReduce集群中,如何将作业基础设置页面中配置的参数传递到脚本文件中?

回答-Hive作业参数传递

在Hive作业中,您可通过-hivevar选项将作业中配置的参数传递到脚本中。如果直接运行脚本,则无法传递。

  1. 准备脚本文件。
    脚本文件中引用变量的方式为${varname}(例如,${rating})。本示例中脚本的相关信息如下:
    • 脚本名称:hivesql.hive
    • 脚本在OSS路径:oss://bucket_name/path/to/hivesql.hive
    • 脚本内容:
      use default;
       drop table demo;
       create table demo (userid int, username string, rating int);
       insert into demo values(100,"john",3),(200,"tom",4);
       select * from demo where rating=${rating};
  2. 登录阿里云 E-MapReduce 控制台
  3. 创建Hive类型作业。
  4. 配置作业参数。
    基础设置页面设置参数的KeyValue,其中Key即脚本文件中的变量名,必须与脚本中一致(例如,rating)。

  5. 配置作业内容。
    作业内容中必须添加-hivevar选项,以将作业中配置的参数值传递给脚本变量。本示例作业内容如下:
    -hivevar rating=${rating} -f ossref://bucket_name/path/to/hivesql.hive
  6. 执行作业。

    本示例执行结果如下: