基于spark引擎的hive,在hive客户端中提交查询sql后,在yarn管理界面,或者8088界面,看到的作业名称都是"hive on spark",如下图所示,如果有多个脚本同时在运行时,就不好分辨。
如果是基于mapreduce引擎的,可以通过设置mapred.job.name参数来实现(笔者未验证)。
而基于spark引擎的,需要设置 spark.app.name。
hive (default)> set spark.app.name=a001;
需要注意的是,在同一个会话中,这个参数只能生效一次,
即第一次设置了 set spark.app.name=a001;执行了一个查询后,在同个会话中,再设置 set spark.app.name=a002;再执行一个查询语句。这时候,无论application id是否变化,a002都是不生效的。application name依然是a001。
但是如果开启会话后,连续执行两次设置set spark.app.name=a001;set spark.app.name=a002;再执行sql查询,会以后面一次设置为准,即application name是a002。