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快速入门的更多相关文章

  1. Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

  2. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  3. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  4. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  5. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  6. Mybatis框架 的快速入门

    MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...

  7. grunt快速入门

    快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...

  8. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  9. 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  10. Vue.js 快速入门

    什么是Vue.js vue是法语中视图的意思,Vue.js是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API.作者是尤雨溪,写下这篇文章时vue.js版本为1.0.7 准备 我推荐 ...

随机推荐

  1. 获取 + 查看 Android 源码的 方法

    Android源码获取方法. 作为一个Android开发者,必要的时候阅读以下源码可以拓宽一下自己的视野和对android的认知程度. Google的Android的源码管理仓库是用的是Git.And ...

  2. XCODE9.1的一些新问题

    自从XCODE7苹果就允许用免费的开发者账号进行真机测试了,但是还是有很多限制的. 在用的过程中发现限制如下: 1.只能生成*.app文件,不能打包成ipa.官方这么说的,但是奇诡的是,我archiv ...

  3. 【数字图像处理】Matlab实现-图像增强-灰度图像增强

    灰度图像增强的大致原理以及操作方法 面向作业编程 上图是大概对灰度图的增强处理 就是想让图片变得更好看 那么如何具体操作就看下面的代码了 这是一个简单的线性分段处理,相信在注释的帮助下应该能看懂. % ...

  4. SQL Server数据库创建远程服务器备份计划(小白详细图文教程)

    一.前言 最近项目系统做安全加固,以前是本地备份,现在需要做远程内网服务器数据库备份,后期也有可能做异地备份.下面以SQL Server2016 内网服务器数据库备份为例, 数据库服务器地址:192. ...

  5. Python:发送邮件或发带附件的邮件

    在进行发邮件之前,首先了解两个模块:smtplib和email. smtplib模块主要是负责发送邮件的,是一个发邮件的动作,比如连接邮箱服务,登录邮箱,发送邮件等. email模块主要是负责构造邮件 ...

  6. JVM-JVM如何加载类

    一.Java 语言的类型可以分为两大类: 基本类型(primitive types) 引用类型(reference types):类.接口.数组类和泛型参数(泛型参数会在编译中被擦除),因此Java虚 ...

  7. idea的mybatis插件free mybatis plugin(或 Free MyBatis Tool),很好用

    为大家推荐一个idea的mybatis插件----free mybatis plugin(或 Free MyBatis Tool),很好用(个人觉得free mybatis plugin更好用一点,可 ...

  8. ST-Link v2 刷写 GNUK,年轻人的第一个 OpenPGP 智能卡!

    前言 看到了这篇文章 想搞 PGP 智能卡玩,但是 yubikey 死贵 还涉及到某些傻逼政治问题 于是就想找找有无开源实现什么的. 然后就看见了 smartcard 的制作教程,可惜能找到的便宜 j ...

  9. 本地MQTT协议消息服务远程连接教程介绍

    Mosquitto是一个开源的消息代理,它实现了MQTT协议版本3.1和3.1.1.它可以在不同的平台上运行,包括Windows.Linux.macOS等.mosquitto可以用于物联网.传感器.移 ...

  10. 发现AI自我意识:知识及其载体

    知识的量子态 在回答什么是"理解"之前,我们先来讨论一下知识和其载体的定义.知识本身是一个抽象的概念,它可以被编码到各种物质载体中.无论是纸质书籍,还是人类大脑中的神经连接,抑或是 ...