Hive 通过 beeline 不能设置 mapred.job.name 的解决方法

1. 现象描述

通过 beeline 设置 job 的名字,抛出以下异常。但是 hive-cli 没有问题。

0: jdbc:hive2://bmr-master-479c2fa:2181/defau> set mapred.job.name=abc;
Error: Error while processing statement: Cannot modify mapred.job.name at runtime. It is not in list of params that are allowed to be modified at runtime (state=42000,code=1)

2. 原因分析

hive.security.authorization.enabled=true的时候(注意,如果此参数在 hive-site.xml 和 hiveserver2-site.xml 同时存在,hiveserver2-site.xml 中的配置优先级高 ),检查命令的白名单。
命令设置白名单,通过参数 hive.security.authorization.sqlstd.confwhitelisthive.security.authorization.sqlstd.confwhitelist.append
如果参数 hive.security.authorization.sqlstd.confwhitelist 没有配置,或者为空,则使用系统默认的白名单,所以 hive.security.authorization.sqlstd.confwhitelist 不能配置。

3. 解决办法

3.1 设置 hive.security.authorization.enabled=false

设置 hive.security.authorization.enabled=false 后,不走检查逻辑,所以可以配置。

3.2 设置 hive.security.authorization.sqlstd.confwhitelist.append

设置 hive.security.authorization.sqlstd.confwhitelist.append=mapred.job.name 或者使用通配符hive.security.authorization.sqlstd.confwhitelist.append=mapred.job.* 。多个配置项用 | 分割。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值