Ranger2.0版本与Hive的兼容性问题

原创
2020/05/25 22:58
阅读数 1.8K

最近在研究hdfs,hive与ranger配合完成ACL访问控制,本文总结下遇到的问题。


ranger-admin的安装部署与ranger的hdfs插件、hive插件的安装,官网有简单描述,过程也比较简单,另外网上还有很多文章详细说明,就不展开描述。


ranger-admin,ranger的hdfs插件都安装部署好后,在ranger-admin的web界面上配置对应的策略就可以实现HDFS文件/目录的访问控制了。


但在ranger的hive插件安装部署好后,出现ranger-admin连不上hive的现象。网上搜索了一翻,发现ranger中连接hive的相关jar包都是3.0版本的,而我们实际使用的hive版本是2.X,版本不匹配,所以出现连接失败的报错。


这个问题的解决办法是将ranger-admin中hive相关的jar包都删除,然后从hiveserver中拷贝相关的包到ranger-admin对应目录中。


再次测试,连接成功,但又报了新的错误。同时发现在hiveserver节点上,使用beeline可以正确连接hive,但执行任何sql语句均报错,例如:



而另外一台未安装ranger插件的hiverserver节点,使用beeline连接并执行sql语句则没有任何问题。因此怀疑新的问题是和ranger的hive插件有关。


查看了hiveserver的报错信息,并结合hive的源码,发现了问题:ranger的hive插件进行权限控制过程中会判断sql操作类型,而该类型的定义是在3.0以上版本才有的。即ranger2.0版本不支持hive2.X版本。





解决办法:重新编译了ranger-1.2版本,这次仅将编译后的插件安装到hiveserver中,也就是ranger-admin使用的是2.0版本并使用hive2.X版本的相关jar包,hiverserver中的ranger插件是1.2版本的。


正确安装部署后,暂时还未遇到什么坑,hiveserver中的beeline连接查询都正常,同样ranger-admin也能正确连接hive并进行查询,简单验证相关的访问控制策略也能正确生效。


当然,将hive升级到3.X版本配套ranger的2.0版本可能会是更好的选择。


本文分享自微信公众号 - hncscwc(gh_383bc7486c1a)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部