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)的主要内容,如果未能解决你的问题,请参考以下文章