Sentry深入
Sentry的架构
内部架构
核心就是规则引擎以及Metadata Store;记录格式有两种,一种policy file记录授权内容,另外一种是通过命令方式进行授权;前者记录在策略文件中,保存形式是hdfs的一个文件;后者则是记录在数据库中,保存在关系型数据库中(通常和hive的metadata保存在一个MySQL实例中)。
调用模型
Sentry Server对外公开PRC端口以及Web 服务两种接口(以PRC为主),供外界调用;在通过cloudera安装sentry的时候,其实已经把Sentry Server以及Sentry Client安装好了(测试集群只是有hive,默认hive在安装完了sentry之后即和sentry绑定);
Sentry Client
Client种类
Sentry的Hadoop ACL Sync
这些客户端中,HDFS的client比较特殊;因为已经在hive中设置了sentry权限,hive本身就是访问hdfs文件,为什么还要在hdfs层再做权限控制呢?这是因为除了hive可以直接访问hdfs的文件之外,还有Map-Reduce程序,pig,spark等可以访问hdfs,所以只是在hive层面去做是不够的;
在cloudera中可以通过配置hdfs的Enable Sentry Synchronization选项来实现hive权限直接下放;比如你在hive中配置了bd这个用户可以访问sentry_test这个表;那么用bd这个用户在命令行中就可以访问/user/hive/warehouse/sentry_test目录;但是不能访问同级的其他目录以及上级目录。
Hdfs在这里的权限控制是在首先是走sentry的权限控制,如果Sentry中没有配置,才是走文件的权限控制。
1.1.1.1
Sentry权限控制
Sentry的用户映射源
三种:
- Kerberos;
- LDAP;
- Linux User/Group;官网文档描述的第三种是和hadoop的用户对应;但是真实测试中发现如果是一个hadoop存在但是Linux系统中不存在的用户,无法授权成功;所以这里我认为还是Linux自己的用户和组;
Sentry的授权
是标准的基于角色的授权(Role Base Access Control, RBAC)。
- 资源和权限绑定,权限在Sentry中分为三种:Select,Insert,ALL;
- 权限和角色绑定;
- 角色和用户绑定(用户来自于上面提到的三种);
Sentry权限控制的实现
在Build和Plan之间,添加钩子,来进行权限验证。
参考文档:
https://cwiki.apache.org/confluence/display/SENTRY/Documentation
Sentry深入的更多相关文章
- 通过Cloudera在hadoop生态圈中安装Sentry服务。
写在张文章时,差点辣死我了.把sentry数据库密码搞掉了,导致hive,impala,hue都挂了.此事要引以为戒,以后要小心操作了. 安装Sentry服务 a) 在c ...
- 为CDH 5.7集群添加Kerberos身份验证及Sentry权限控制
转载请注明出处:http://www.cnblogs.com/xiaodf/ 4. 为CDH 5集群添加Kerberos身份验证 4.1 安装sentry1.点击“操作”,“添加服务”:2.选择sen ...
- 搭建sentry(一个分布式日志聚合系统)
简介: Sentry 是一个实时的事件日志和聚合平台,基于 Django 构建. Sentry 可以帮助你将 Python 程序的所有 exception 自动记录下来,然后在一个好用的 UI 上呈现 ...
- Python 实时日志平台 Sentry
原文地址:http://www.oschina.net/p/sentry Sentry 是一个实时的事件日志和聚合平台,基于 Django 构建. Sentry 可以帮助你将 Python 程序的所有 ...
- 使用开源软件sentry来收集日志
原文地址:http://luxuryzh.iteye.com/blog/1980364 对于一个已经上线的系统,存在未知的bug或者运行时发生异常是很常见的事情,随之而来的几点需求产生了: 1.系统发 ...
- Sentry Server 日志记录分析服务
原文地址:http://blog.shanbay.com/archives/998 或许你不太会喜欢异常,特别是那些发生后继而沉默在应用日志里那些,你不知道从何开始,因为它们看起来并非那么平易近人,但 ...
- 安装配置sentry服务
环境 系统环境:Centos6.7 Hadoop版本:CDH5.10 jdk版本:jdk7 注:本文并未集成kerberos组件 安装Sentry Server 选择安装hive的节点进行安装测试: ...
- hive集成sentry
1.安装配置sentry 详细步骤见上一篇安装配置sentry 2.配置hive 2.1 Hive-server2集成Sentry 在 /etc/hive/conf/hive-site.xml中添加: ...
- Centos7通过Docker安装Sentry(哨兵)
Docker介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, ...
- hive集成sentry的sql使用语法
Sentry权限控制通过Beeline(Hiveserver2 SQL 命令行接口)输入Grant 和 Revoke语句来配置.语法跟现在的一些主流的关系数据库很相似.需要注意的是:当sentry服务 ...
随机推荐
- iOS获取某个日期后n个月的日期
一.给一个时间,给一个数,正数是以后n个月,负数是前n个月: -(NSDate *)getPriousorLaterDateFromDate:(NSDate *)date withMonth:(NSI ...
- vi高级命令集锦
.交换两个字符位置 xp .上下两行调换 ddp .把文件内容反转 :g/^/m0/ (未通过) .上下两行合并 J .删除所有行 dG .从当前位置删除到行尾 d$ .从当前位置复制到行尾 y$ 如 ...
- linux 网卡buffer大小
参考截取一部分:https://blog.csdn.net/ysu108/article/details/7764461 在linux下可以修改协议栈改变tcp缓冲相关参数: 修改系统套接字缓冲区 e ...
- Docker容器技术-基础与架构
一.什么是容器 容器是对应用程序及其依赖关系的封装. 1.容器的优点 容器与主机的操作系统共享资源,提高了效率,性能损耗低 容器具有可移植性 容器是轻量的,可同时运行数十个容器,模拟分布式系统 不必花 ...
- classpath是什么
作用: 告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包(也就是.class文件) JDK 5.0默认就会到JDK的lib目录下寻找Java程序. 如何配置? 有许多 ...
- windows 服务安装报错
使用windows服务开发的定时任务,在win7上都运行良好,在windows server 2008上运行报错,报错信息如下 错误应用程序名称: GCWindowsService.exe,版本: 1 ...
- VMware VIC
vSphere Integrated Containers - a short intro High-Level view of VCH Networking vSphere Integrated C ...
- Maximum Subsequence Sum【最大连续子序列+树状数组解决】
Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i < ...
- JAVA基础补漏--字符串
字符串常量池 String a="abc"; String b="abc"; char[] str = {"a","b" ...
- Logistic回归python实现
2017-08-12 Logistic 回归,作为分类器: 分别用了梯度上升,牛顿法来最优化损失函数: # -*- coding: utf-8 -*- ''' function: 实现Logistic ...