码迷,mamicode.com
首页 > 其他好文 > 详细

Hive权限控制中间层-Hamza

时间:2015-01-27 11:15:53      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

1、产品概述

Hive作为大数据时代的数据仓库工具,使我们分析处理海量结构化数据成为可能。越来越多的公司和机构都将Hive作为应对大数据分析的强有力工具。但使用中,比较明显的问题便是当存在多个应用同时使用同一Hive的时候,如何有效控制彼此的数据安全,如何更方便使用Hive UDF的扩展机制。

当然,作为大数据平台开发过程中也同样遇到这些问题。整个公司不同业务方的数据汇聚到数据平台后,对数据的隔离访问尤为重要。在参考Cloudera Sentry项目的基础上,我们结合自身平台需求,开发了Hamza这一Hive计算中间层,兼具权限控制和UDF函数扩展作用。

技术分享

大致的架构如上图所示。Hamza Core是整个Hamza的核心,主要包括权限信息表的操作、Hook函数的实现、UDF扩展函数的实现及其他公用类;Hamza Client是对Hive JDBC模块的简单扩展,支持传递用户名、密码和客户端IP,业务方使用将用其代替原有Hive JDBC包;Hamza Auth是开放的权限信息维护接口及对应Web界面,便于管理员和普通Hive用户查看自己的库表,及被授权的权限信息等。


2、编译开发

技术分享

项目结构如上图所示。hamza-authweb模块,依赖hamza-corehamza-clientjar形式的,也依赖hamza-corehamza-dist是打包编译用,会将工程打成发布包。相关全局配置参数在总控pom.xml中修改,其他地方的属性文件不需要修改。

技术分享
技术分享

当这些配置完成后,将hive源码导入eclipse, 同时hamza也已被导入eclipse,工程都置为打开状态。然后以调试模式启动hive(命令行形式直接执行hive --debugjdbc形式执行hive --debug --service HiveServer2 &),这样hive便在8000端口监听等待远程调试连接了。

然后在hive源码及hamza源码自己关心的代码处打上断点。接着新建一个Remote Java ApplicationIP填写hive的机器IP,端口填写8000,最后点击“debug”按钮。

技术分享

3、版本使用

技术分享

的库表。

技术分享

技术分享

技术分享

资源:

http://archive-primary.cloudera.com/cdh5/cdh/5/

http://hive.apache.org/

https://blogs.apache.org/sentry/




Hive权限控制中间层-Hamza

标签:

原文地址:http://blog.csdn.net/huanggang028/article/details/43191569

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!