ranger源代码解读插件原理(HDFS)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ranger源代码解读插件原理(HDFS)相关的知识,希望对你有一定的参考价值。

参考技术A 1.首先是hdfs的hdfs-site.xml中配置了以下配置:

2.加载过程:
首先,在ranger-hdfs-plugin-shim这个包下有RangerHdfsAuthorizer这个类。在Namenode启动时会将这个类动态加载进入虚拟机,并实例化包ranger-hdfs-plugin下的RangerHdfsAuthorizerorizer。

getInstance方法体:

类加载:

插件激活:

在ranger-hdfs-plugin包下:RangerHdfsPlugin 继承 RangerBasePlugin,首先是初始化方法init,调用RangerBasePlugin 的init方法,主要实现以下操作:

父类init:

策略引擎配置:

rangerAdmin执行流程(传入的是配置文件的时间)(定时的更新策略),使用jersey来构建RESTful服务(RangerAdminRESTClient)客户端实现:

presto,dremio,spark-sql与ranger的整合记录

dremio,spark-sql,presto和ranger的整合
当前,ranger没有现成的插件来管理dremio,spark-sql,presto。
暂时使用的方法是新建一个用户,如presto可以创建一个presto用户,然后在ranger中对presto用户赋予hive,hdfs的访问权限。
尤其是在hive doas权限开启的时候,一定要把对应的hdfs的权限也分配一下。
然后使用presto用户来启动presto的worker,cordinaor进程,这样提交的查询都是使用这个用户,可以正常访问hdfs和hive.
但是这样的问题就是,不管jdbc使用什么用户,都是无效的。

presto整合到ambari安装的时候,默认是使用root用户进行启动的,可以修改

/var/lib/ambari-server/resources下面的presto-worker.py,presto-cordinator.py中install和start方法,

install方法中添加useradd presto,chown -R presto:presto /usr/hdp/current/presto

start  方法中添加 sudo -u presto ,这样就可以使用presto用户来启动presto的相关进程。

网络上可以查到一个信息,一个presto的发行公司startbust自己发行的presto可以配置hive.security=ranger可以

与ranger进行整合。

presto安装后需要注意的配置是hive.config.resources=/etc/hadoop/conf/hdfs-site.xml,/etc/hadoop/conf/core-site.xml

这样才可以使用NAMENODE HA中配置的namespace,不会报找不到主机异常。

 

以上是关于ranger源代码解读插件原理(HDFS)的主要内容,如果未能解决你的问题,请参考以下文章

漫画解读HDFS存储原理(转载)

数据分析工具篇——HDFS原理解读

ranger-hdfs 插件组权限测试

EOS 源代码解读 插件-插件模板

EOS 源代码解读 插件-流程

数据架构入门必看,分布式文件系统HDFS解读