Altas&Ranger快速入门
Altas&Ranger快速入门
一、元数据
企业内部远行多种类型的数据库,有关系型数据库、非关系型数据库、图数据库、时序数据库等,常见有mysql、redis、Mongodb、oracle、prometheus等,数据库是用来管理和存储数据的,例如:oracle数据库:schema是一组数据库对象的集合、table是存储数据库的实体、column列表示数据库的每个属性、view视图表示虚拟表,表示一组查询的逻辑集合、materialview物化视图则是对视图的实体化、同义词表示数据库对象的别名等等。
schema是一组数据库对象的集合、table是存储数据的实体、column列表示数据库的每个属性、view视图表示虚拟materialview物化视图则是对视图的实体化。同义词表示数据库对象的别名等。
作用:元数据管理可以分析表,视图等数据库对象间的依赖关系。
分析字段间的传递关系,在元数据库管理中,我们称为数据血缘关系。
分析是否存在重复字段,矛盾字段等。
为企业提供数据地图。
二、软件介绍
- 简介
为了解决数据治理的开源解决方案,Hortonworks公司发起了数据治理倡议,包括数据分类、集中策略引擎、数据血缘、安全和生命周期管理等方面。
Apache Atlas 项目就是这个倡议的结果,社区伙伴持续的为该项目提供新的功能和特性。
- 特征
元数据类型和实例、分类、血统、搜索/发现、安全与数据屏蔽。
类型和实例:为各种hadoop和非hadoop元数据的预定义类型。管理元数据定义新的类型能力。类型可以具有原始、复杂、对象,可以从其他类型继承。类型的实例,称为实体,捕获元数据对象细节及其关系。restApi与类型和实例一起工作更容易集成。
分类:动态创建分类的能力。如pii、dataal质量、敏感等。分类包括属性:expiry_date属性。实体可以与多个分类相关联,从而能够更容易发现和安全执行。通过谱系传播分类-自动确保分类跟随数据经过各种处理
血统:直观UI,查看数据的传统,通过各种处理。Rest API访问和更新血统。
搜索/发现:通过类型、分类、属性值或自由文本搜索实体直观UI。丰富的REST API实现复杂的标准搜索。搜索实体的SQL类查询语言------特定领略语言(DSL)
安全与数据屏蔽:用于元数据访问的细粒度安全性,允许对实体实例和操作的访问进行控制。与apache Ranger的集成使得基于与Apache Atlas中的实体相关联的分类的数据访问的授权/数据屏蔽成为可能。
三、软件架构
- Core
type system: Atlas 允许用户为他们想要管理的元数据对象定义一个模型。该模型由称为 "类型" 的定义组 成。"类型" 的 实例被称为 "实体" 表示被管理的实际元数据对象。
Ingest/Export: Ingest 组件允许将元数据添加到 Atlas。Exporter组件暴露,Atlas检测到元数据更改,作为事件引发!
Graph Engine :Atlas 通过使用图形模型管理元数据对象。
Titan:Atlas 使用 Titan 图数据库来存储元数据对象。
- Integration
API:Atlas 的所有功能都可以通过 REST API 提供给最终用户,允许创建,更新和删除类型和实体。 它也是查询和发现通过 Atlas 管理的类型和实体的主要方法。
Messaging:除了 API 之外,用户还可以选择使用基于 Kafka 的消息接口与 Atlas 集成。这对于将元数据对 象传输到 Atlas 以及从 Atlas 使用可以构建应用程序的元数据更改事件都非常有用。
Atlas 使用 Apache Kafka 作为通知服务器用于钩子和元数据通知事件的下游消费者之间的通信。事件由钩子(hook)和 Atlas 写到不同的 Kafka 主题:
ATLAS_HOOK: 来自 各个组件的Hook 的元数据通知事件通过写入到名为 ATLAS_HOOK 的 Kafka topic 发送到 Atlas。
ATLAS_ENTITIES:从 Atlas 到其他集成组件(如Ranger)的事件写入到名为 ATLAS_ENTITIES 的 Kafka topic。
- metadata source
Atlas 支持与许多元数据源的集成,将来还会添加更多集成。目前,Atlas 支持从以下数据源获取和 管理元数据:

- Applications
Atlas Admin UI:该组件是一个基于 Web 的应用程序,允许数据管理员和科学家发现和注释元数据。
Tag Based Policies: Apache Ranger 是针对 Hadoop 生态系统的高级安全管理解决方案,与各种 Hadoop 组件具有 广泛的集成。 通过与 Atlas 集成,Ranger 允许安全管理员定义元数据驱动的安全策略,以实现有效的治理。 Ranger 是由 Atlas 通知的元数据更改事件的消费者。
Business Taxonomy: 从元数据源获取到 Atlas 的元数据对象主要是一种技术形式的元数据。
Ranger 是由 Atlas 通知的元数据更改事件的消费者。


- 总结:
altas与多种数据库进行对接,使用不同数据库的Hook函数,来监控数据库的变化,当变化产生时,Hook会把变化的元数据当成一条一条消息发送到kafka。
Apps将收集到的元数据展示给客户,或者进行其他的操作。
Integration进行数据的查询基于HTTP/RestFul风格。
Core是altas的核心层,会涉及到元数据的导入导出、类型系统、图形引擎等等。
数据层是元数据存储到HBase,索引数据存储到solr或者Elasticsearch
四、元数据管理策略
Type System: Atlas允许用户为他们想要管理的元数据对象定义模型。该模型由称为 type(类型)的定义组成。 称为 entities(实体) 的 type(类型) 实例表示受管理的实际元数据对象。 Type System是一个允许用户定义和管理类型和实体的组件。
具有元类型 Entity , Struct , Classification 或 Relationship 的类型可以具有属性的 集合。每个属性都有一个名称(例如: name )和一些其他相关属性。可以使用表达式 type_name.attribute_name 引用属性。值得注意的是,属性本身是使用Atlas元类型定义的。
- 例如HIve表定义了以下属性:

- Entities
atlas中的entity是type的特定值和实例,因此表示现实世界中的特定元数据对象。
例如:Hive在'default'数据库中有一个名为'customers'的表。该表是 hive_table类型的Atlas中的“实体”。

- Attributes
属性(attributes)是在实体(Entity),结构(Struct),分类(Classification)和关系(Relationship)等元类型中 定义的。但我们将属性列举为具有名称和元类型值。


- 系统特定类型
Referenceable: 该类型表示可以使用名为qualifiedName的唯一属性搜索的所有实体。
Asset:该类型扩展了Referenceable并添加了名称,描述和所有者等属性。 Name是必需属性(isOptional = false),其他属性是可选的。
Infrastructure:该类型继承自Asset,通常可用作基础结构元数据对象(如集群,主机等)的常见超类 型。
DataSet:该类型继承自Referenceable。从概念上讲,它可以用于表示存储数据的类型。
Process:该类型继承自Asset。从概念上讲,它可以用于表示任何数据转换操作。
Referenceable和Asset的目的是为建模者提供在定义和查询自己类型的实体时强制一致性的方法。
五、Ranger软件介绍
- 简介
大数据集群最基本的就是数据以及用于计算的资源,是一个公司的宝贵财富,我们需要将它们很好 管理起来,将相应的数据和资源开放给对应的用户使用,防止被窃取、被破坏等,这就涉及到大数 据安全。
Ranger是一款就可以细粒度控制大数据组件权限的组件。
优点:
支持多组件,最好能支持当前公司技术栈的主要组件,HDFS、HBASE、HIVE、YARN、STORM、 KAFKA等
支持细粒度的权限控制,可以达到HIVE列,HDFS目录,HBASE列,YARN队列,STORM拓扑, KAKFA的TOPIC
开源,社区活跃,按照现有的集群改情况造改动尽可能的小,而且要符合业界的趋势。
- 业内常见的大数据权限组件
Kerberos(业界比较常用的方案)
Apache Sentry(Cloudera选用的方案,cdh版本中集成)
Apache Ranger(Hortonworks选用的方案,hdp发行版中集成)
- Kerberos
Kerberos是一种基于对称密钥的身份认证协议,它作为一个独立的第三方的身份认证服务,可以为 其它服务提供身份认证功能,且支持SSO(即客户端身份认证后,可以访问多个服务如HBase/HDFS 等)
Kerberos协议过程主要有三个阶段,第一个阶段Client向KDC申请TGT,第二阶段Client通过获得TGT向KDC申请用于访问Service的Ticket,第三阶段是Client用返回的Ticket访问Service。
- 优点:
- 服务认证,防止broker datanode regionserver等组件冒充加入集群
- 解决了服务端到服务端的认证,也解决了客户端到服务端的认证
- 缺点:
- kerberos为了安全性使用临时ticket,认证信息会失效,用户多的情况下重新认证繁琐
- kerberos只能控制你访问或者拒绝访问一个服务,不能控制到很细的粒度,比如hdfs的某一个路径,hive的某一个表,对用户级别上的认证并没有实现


- Apache Sentry
Apache Sentry是Cloudera公司发布的一个Hadoop安全开源组件,它提供了细粒度级、基于角色的 授权.
优点:Sentry支持细粒度的hdfs元数据访问控制,对hive支持列级别的访问控制 Sentry通过基于角色的授权简化了管理,将访问同一数据集的不同特权级别授予多个角色 Sentry提供了一个统一平台方便管理 Sentry支持集成Kerberos
缺点: 组件只支持hive,hdfs,impala 不支持hbase,yarn,kafka,storm等

- Apache Ranger
Apache Ranger是Hortonworks公司发布的一个Hadoop安全组件开源组件.
优点:
- 提供了细粒度(hive级别)
- 基于访问策略的权限模型
- 权限控制插件式,统一方便的策略管理
- 支持审计日志,记录各种操作的审计日志,提供统一查询接口和界面。
- 丰富的组件支持。
- 支持和Kerberos的集成。
- 提供了Rest接口供二次开发。
六、Ranger系统架构
Ranger 使用了一种基于属性的方法定义和强制实施安全策略。当与 Apache Hadoop 的数据治理解决方 案和元数据仓储组件Apache Atlas一起使用时,它可以定义一种基于标签的安全服务,通过使用标签对 文件和数据资产进行分类,并控制用户和用户组对一系列标签的访问。

- 权限模型
访问权限无非是定义了”用户-资源-权限“这三者间的关系,Ranger基于策略来抽象这种关系,进而 延伸出自己的权限模型。
”用户-资源-权限”的含义详解:
- 用户:由User或Group来表达,User代表访问资源的用户,Group代表用户所属的用户组。
- 资源:不同的组件对应的业务资源是不一样的,比如

- 权限
由(AllowACL, DenyACL)来表达,类似白名单和黑名单机制
AllowACL用来描述允许访问的情况
DenyACL用来描述拒绝访问的情况,不同的组件对应的权限也是不一样的。
- 权限实现
Ranger-Admin职责: 管理员对于各服务策略进行规划,分配相应的资源给相应的用户或组,存储在db中。 Service Plugin职责:
定期从RangerAdmin拉取策略
根据策略执行访问决策树
实时记录访问审计
策略执行过程:

- 策略优先级
黑名单优先于高于白名单
黑名单排除优先级高于黑名单
白名单排除优先级高于白名单
- 决策下放:
如果没有policy能决策访问,一般情况是认为没有权限拒绝访问,然后Ranger还可以选择决策下放给系统自身的访问控制层。
Altas&Ranger快速入门的更多相关文章
- Web Api 入门实战 (快速入门+工具使用+不依赖IIS)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...
- SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)
SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...
- 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)
今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...
- 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- Mybatis框架 的快速入门
MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...
- grunt快速入门
快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- Vue.js 快速入门
什么是Vue.js vue是法语中视图的意思,Vue.js是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API.作者是尤雨溪,写下这篇文章时vue.js版本为1.0.7 准备 我推荐 ...
随机推荐
- MySQL误删恢复方法1
MySQL不同于oracle,没有闪回查询这类概念,但网上流传几个闪回的开源工具如 binglog2sql.MyFlash,可以使用binglog日志进行误操作数据的恢复. 笔者以前测试过 bingl ...
- .NET静态代码织入——肉夹馍(Rougamo)发布2.0
肉夹馍(https://github.com/inversionhourglass/Rougamo)通过静态代码织入方式实现AOP的组件,其主要特点是在编译时完成AOP代码织入,相比动态代理可以减少应 ...
- Webpack DevServer 代理本地静态目录
前言 项目里需要离线切片地图,但切片地图文件很多,需求上有时无法单独提供一个独立的文件服务器或者切片服务器,放在 public 难免会在调试运行时被复制到 DevServer 上,而这个操作在低层级少 ...
- DELL R750
两种情况不常见 1.如果R750的配置单里提到 跳线-C13/C14.0.6M.250V.10A(中国.韩国) 要注意里面写的0.6M,表示这个线是0.6米的,较短,客户机房环境复杂的情况下,很可 ...
- 【BUU刷题日记】——第一周
[BUU刷题日记]--第一周 一.[极客大挑战 2019]PHP1 题目说自己有一个备份网站的习惯,所以要了解一下常见的网站源码备份格式及文件名: 格式:tar.tar.gz.zip.rar 文件名: ...
- 更改Kali Linux系统语言以及安装zenmap
更改Kali Linux系统语言以及安装zenmap 在使用kali的过程中,会遇到许多问题,其中一个就是看不懂英语,下面是如何更换语言的步骤. 更改Kali Linux系统语言 首先,打开kali, ...
- Ubuntu18.04环境下安装redis 6.2.0,配置文件的部分参数说明
环境是win11的Linux子系统Ubuntu-18.04,安装方式是源码安装,也可以用apt安装(见本文最后参考资料),用的用户是默认用户(所以一些关键命令要注意用sudo,不用会报错) 安装: j ...
- 安装了less后仍然报错:Error: Cannot find module 'less'
结果是命令有点问题,正常来说是用下面的: npm i less –save-dev-g 然后可以正常启动了: --------------------------------------------- ...
- Keepalived高可用软件概述
Keepalived高可用软件概述: 1)互联网主要的高可用软件:Keepalived.Hearttbeat.其中Keepalived是轻量级的,Keepalived是一款开源.免费的实现网站.数据库 ...
- Spring扩展接口(4):InstantiationAwareBeanPostProcessor
在此系列文章中,我总结了Spring几乎所有的扩展接口,以及各个扩展点的使用场景.并整理出一个bean在spring中从被加载到最终初始化的所有可扩展点的顺序调用图.这样,我们也可以看到bean是如何 ...