问题背景
在hive中,MapReduce我们可以使用 mapred.job.name
来设置job name,以便在YARN的Web UI界面查看对应任务,或者使用使用 yarn application -list | grep appName 查看任务运行情况。但是Tez,不支持 mapred.job.name
设置job name,在Tez中,作业名称叫appName,我们可以通过设置tez的session.id来设置appName。
设置作业名称
执行引擎 | job name |
---|---|
Tez | hive.session.id |
MapReduce | mapred.job.name |
MR设置job name
set mapred.job.name=job_name;
Tez设置appName
设置 session id
Tez是通过设置session.id来设置appName的
hive --hiveconf hive.session.id=appName.id
在YARN 的Web UI界面查看到的appName和使用yarn application -list查看到的appName一样,如下:
前缀:HIVE-
后缀:设置的session id
[root@hadoop ~]$ yarn application -list
Application-Id Application-Name Application-Type User Queue State Final-State Progress Tracking-URL
application_1545291048056_1013012 HIVE-appName.id TEZ root rootqueue ACCEPTED UNDEFINED 0% N/A
切记:必须在hive启动的时候设置,如果进入hive里面设置 hive.session.id
,YARN的Web UI界面和yarn application -list查看的结果是不生效的。
Tez不设置 session id
在YARN 的Web UI界面查看到的appName和使用yarn application -list查看到的appName一样,如下:
前缀:HIVE-
后缀:默认的session id,每次进入hive,都会自动分配一个
[root@hadoop ~]$ yarn application -list
Application-Id Application-Name Application-Type User Queue State Final-State Progress Tracking-URL
application_1545291048056_1013012 HIVE-a788de76-0db8-4419-9dfa-8a85ff0abcf6 TEZ root rootqueue ACCEPTED UNDEFINED 0% N/A