问题
无法在SQL中通过SET xxx = yyy
的方式覆盖原有配置.
复现
想在执行SQL的过程中修改配置, 但是实际配置的时候却显示失败. 比如执行下面的配置.
set hbase.client.scanner.caching=10000;
原因和解决
从安全的角度上讲, 如果任何一个可以执行SQL的用户都可以随便更改任何一个配置, 那将是非常不安全的. 所以Hive有个配置白名单机制, 白名单里具体有哪些配置, 可以看下面图或者参考链接. 管理员可以根据需要增减这个白名单.

参考
https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-hive.security.authorization.sqlstd.confwhitelist
http://community.hortonworks.com/answers/46629/view.html
网友评论