You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Beeline中设置Tez作业自定义名称并在YARN中显示的方法

我之前也碰到过一模一样的问题!Hive on Tez下hive.query.name确实只会在Tez专属UI里显示,YARN那边根本不认这个参数。要让YARN的活跃应用列表里显示自定义的易读名称,得用Tez自身的配置参数来搞定,具体方案如下:

两种可行配置方式

方式一:统一Hive查询名与Tez应用名

如果希望同时在Tez UI和YARN里看到一致的自定义名称,可以把两个参数绑定起来:

-- 先设置Hive层面的查询标识(会在Tez UI显示)
SET hive.query.name=My_User_Data_Load_Job;
-- 让Tez的ApplicationMaster把这个名称传给YARN
SET tez.am.app.name=${hive.query.name};

-- 接下来执行你的加载脚本
LOAD DATA INPATH '/user/data/new_users' INTO TABLE user_info;

方式二:直接设置Tez应用名

如果不需要在Tez UI里同步名称,也可以直接配置Tez的应用名称参数:

SET tez.am.app.name=My_User_Data_Load_Job;

-- 执行加载脚本
LOAD DATA INPATH '/user/data/new_users' INTO TABLE user_info;

原理说明

Tez作业在向YARN注册时,会使用tez.am.app.name的值作为应用名称,而hive.query.name只是Hive内部的查询标识,不会自动传递给YARN。所以之前只设置hive.query.name时,YARN还是会显示默认的HIVE-<UUID>格式名称。

配置完成后,运行你的加载脚本,再执行yarn application -list就能看到自定义的作业名称了。

内容的提问来源于stack exchange,提问作者ram_23

火山引擎 最新活动