hive自定义参数



有的时候我们需要执行hive的时候带一些参数,以便我们后期任务分析、排查等问题。所以这里我们说一下自定义参数的作用。

hive 命令指定参数

执行hive命令的时候指定参数

1
hive --hiveconf hive.job.submit.username=shining -e "select count(*) from temp.test_hive where pt='2019-03-21';"

也可以指定多个参数

1
hive --hiveconf hive.job.submit.username=shining  --hiveconf hive.job.submit.web=sukbeta.github.io  -e "select count(*) from temp.test_hive where pt='2019-03-31';"

这时你可以在yarn中找到job的页面,在job的 Configuration 页面中可以查找到你得传的参数。

如:
hive-custom-variables-images

全局配置

可以修改 hive 命令中的 HIVE_OPTS, 这样执行所有hive的命令都添加这个参数了。

例如:
编辑 hive 命令

1
2
3
4
5
vim $HIVE_HOME/bin/hive

添加:

HIVE_OPTS="$HIVE_OPTS --hiveconf scheduler.job.submit.username=${BUILD_USER_ID} --hiveconf scheduler.job.submit.jobname=${JOB_NAME}"
  • BUILD_USER_ID 和 JOB_NAME 是两个参数,需要有这两个参数。否则是查不到的。

我是用jenkins调用的hive,jenkins会自动传入 JOB_NAME 参数的,所有就能取到。

在jenkins上安装 Build User Vars Plugin 插件可以获取一些执行用户信息。

可以参考插件说明 :
https://wiki.jenkins.io/display/JENKINS/Build+User+Vars+Plugin

hive自定义参数这个更能用好了还是很强大的。

感谢您的支持!