文章目录
  1. 1. Apache Atlas详解
    1. 1.1. 什么是Atlas?
    2. 1.2. 数据孤岛与数据湖
      1. 1.2.1. 数据孤岛
      2. 1.2.2. 数据湖
    3. 1.3. Atlas可以做什么?
      1. 1.3.1. 你面对的问题
      2. 1.3.2. Atlas的解决方式
    4. 1.4. Apache Atlas的功能
      1. 1.4.1. 数据分类
      2. 1.4.2. 集中化审计
      3. 1.4.3. 搜索 & 血缘(查看)
      4. 1.4.4. 安全&政策 引擎
    5. 1.5. Atlas 的架构
      1. 1.5.1. 主要模块
      2. 1.5.2. Bridges
      3. 1.5.3. Notification
      4. 1.5.4. Apache Atlas的应用
        1. 1.5.4.1. Apache Atlas – Knowledge Store
        2. 1.5.4.2. Apache Atlas – Data Life Management
        3. 1.5.4.3. Apache Atlas – Audit Store
        4. 1.5.4.4. Apache Atlas – Policy Engine
        5. 1.5.4.5. Apache Atlas – Security
    6. 1.6. Type System
      1. 1.6.1. Data Types Overview
      2. 1.6.2. Types Instances Overview
    7. 1.7. Search
      1. 1.7.1. Falcon UI
    8. 1.8. Walk Through A Use Case
      1. 1.8.1. Collect Data
      2. 1.8.2. Search on Atlas
        1. 1.8.2.1. Search based on DB
        2. 1.8.2.2. Search based on Application
        3. 1.8.2.3. 表格元数据
        4. 1.8.2.4. 血缘

Apache Atlas详解

By Qinglin,Xia

什么是Atlas?

Atlas是数据治理中很重要的一个工具,它通过对元数据(Metadata)的管理,实现Hadoop中各个组件之间数据的流通与交换,亦或是与Hadoop外界组件的数据交流(如Mysql等数据库),从而实现跨平台的数据治理,解决数据孤岛(Data Solo)的问题

数据孤岛与数据湖

数据孤岛

数据孤岛是目前大数据领域面对的一大问题,我们可以把每个企业看做一个数据孤岛,在他们与其他企业进行数据流通的时候,因为数据定义,存储方式和维护方式的不同,使得合并或者交换数据变得异常困难。而当企业发展到一定阶段,每个事业部也可以看做是一个数据孤单,使得企业内部数据流通也出现巨大的困难

数据湖

数据湖是把数据孤岛的数据打通,整合到一起,一个数据湖通常符合这三个条件:

  • 收集所有数据(Collect everything): 数据湖可以包含各种数据,可以有raw data也可以有被处理过的数据
  • 适用于所有场合 (Dive in anywhere):数据湖使各行各业的用户都可以按照他们的标准修改,查看或者丰富里面的数据
  • 灵活的访问模式 (Flexible access): 数据湖支持各种数据访问模式对共享的结构进行访问: batch, interactive, online, search,in-memory,etc

More info: Enterprise Hadoop Journey to Data Lake

Atlas可以做什么?

你面对的问题

  • 你知道你的数据在那里么? Do you know where is your data ?
  • 你知道这个指定数据集由谁负责么? Do you know who is responsible of this specific
    datasets ?
  • 你知道上周五是哪个应用或者任务修改了这块数据么?Do you know from which application or task this entity
    was modified last friday ?

Atlas的解决方式

为了解决数据孤岛的问题,使数据湖得以实现,Hadoop提供了数据治理(Data Governance)的工具,而Apache Atlas就是其中很重要的一个工具。 它主要可以实现以下功能:

  • 搜索和追溯血统(Search and Proscriptive Lineage)– 可以使探究事先定义(pre-define)或者临时的(ad-hoc)数据和元数据变得更便利, 同时保留数据源的历史,便于追溯数据的起源,产生和演变

  • 由元数据驱动的数据访问控制(Ranger + Atlas)

  • 对商业数据(business data)或者工作数据(operational data)灵活建模

  • 数据分类 – help understand the nature of data within Hadoop and classify it based on external and internal sources

  • 与其他元数据工具进行数据交换

Apache Atlas的功能

总结来说,Atlas的功能主要有以下四大类:

数据分类

  • 导入或定义以商业为导向的注解的分类
  • 定义,注解,和自动捕获数据集与底层元素的关系,包括数据来源,数据终点,和获取过程 (Source, Target, and Derivation processes)
  • 导出元数据到第三方系统

集中化审计

  • 得到每个应用,进程的安全访问控制信息
  • 得到execution, steps和activities的操作性信息

搜索 & 血缘(查看)

  • 预先设定查看路径,用以浏览数据分类和信息审计
  • 用以Text为基准的搜索去定位相关的数据
  • 数据集血缘的可视化 Visualization of data set lineage

安全&政策 引擎

  • 在runtime的数据分类机制政策 Policy at runtime based on data classification schemes
  • 定义预防数据掠夺的政策

More Info: Features

Atlas 的架构

主要模块

  • Web应用 (A Web service): 提供了RESTful APIs以及一个Web UI,使用户可以创建,更新和搜索元数据(Metadata)。

  • 元数据仓库 (Metadata store): Falcon用图(graph model)对元数据进行建模,用图数据库Titan对元数据进行具体操作。Titan有一系列的备选仓库可以用来维护图,包括一种嵌入式Berkeley DB, Apache HBase和Apache Cassandra。对备选仓库的选择将决定可选的服务层级。

  • 索引仓库(Index store): 为了使全文搜索在元数据上得以实现,Altas,通过Titan,对元数据建立了索引。而全文检索的备选仓库是像ElasticSearch或是Apache Solr的一个搜索后端。

  • Bridges / Hooks: 为了在Atlas中添加元数据,一种叫做”hooks”的libararis被各种应用启用,像是Apache Hive, Apache Falcon和Apache Sqoop, 它们都可以在各自系统中捕捉元数据events,并把这些events传送到Atlas中。而Atlas服务器则会吸收这些Events并更新他自己的仓库。

  • 元数据提醒events(Metadata notification events): 在Atlas中任意对元数据的更新,不论是通过Hooks或是API,都会通过events从Atlas传送到它下层的应用。像是Apache Ranger这样的应用会吸收这些events然后让管理员对他们进行操作,譬如:对访问控制的政策进行配置。

  • Notification服务器 (Notification Server): Atlas用Apache Kafka作为Notification服务器,使Hooks和它下层的应用可以就元数据提醒事件进行沟通(metadata notification events)。这些事件由hooks和Atlas写入到不同的Kafka主题中。Kafka可以对这些分散的应用实现宽松的成对整合。

Bridges

Bridge/Hook 的主要作用就是使得装有Bridge的应用,在生成一个entity的时候,也会有一个对应的entity在Atlas中生成。

有这样Bridges的应用是:

- Hive Bridge
- Sqoop Bridge
- Falcon Bridge
- Storm Bridge

Notification

Notification被应用于从Hook对Atlas的entity注册,和entity/type交换提醒。这些都由Kafka实现,Atlas启动时也默认启动Kafka Server。

More Info: Atlas Architecture

Apache Atlas的应用

Apache Atlas – Knowledge Store

知识仓库通过以商业为导向的分类学来分类:

  • 数据集合 & 对象 Data sets & objects
  • 表/列 Tables / Columns
  • 逻辑上下文 Logical context
  • 起点,终点 Source, destination

支持Atlas基本模块和外部第三方应用/数据治理工具的元数据交换

Tech:

  • Titan with Apache HBase

Apache Atlas – Data Life Management

功能:

  • 跨集群复制
  • 数据集合保留/驱逐
  • 迟到的数据处理
  • 自动化

Tech:

  • Apache Falcon

Apache Atlas – Audit Store

存储所有数据治理相关的Historical Repository

  • 安全性 Security: 访问权限的给予和拒绝 Access Grant & Deny
  • 功能性 Operational: 数据起源和数据矩阵 Data Provenance &
    Metrics
  • 建立索引,使数据可搜索 Indexed and Searchable

Tech:

  • YARN ATS, Apache HBase, Apache Hive, Solr,
    ElasticSearch
    (Pluggable)

Apache Atlas – Policy Engine


关于数据集合的合并以及时间的(data asset combinations
and time)政策条例

  • 基于元数据的
  • 基于地理位置的条例 Geo based rules
  • 基于时间的条例 Time-based rules
  • 列/属性禁用 Column /Attribute Prohibitions
  • 预览:Hive的行和列隐藏 Preview: Hive Row and Column Masking

Tech:

  • Ranger

Apache Atlas – Security

建立基于数据分类的全球安全条例(global security policies)

Type System

Data Types Overview

Types Instances Overview

有两种在Atlas中搜索元数据的方法:

  • DSL
  • 全文检索

Falcon UI

More Info: Search Feature

Walk Through A Use Case

Collect Data

从Twitter中导入数据,将Raw Data存入HDFS中,并构建四张表(tweets,users,url,Hash tags)将数据分别存入,通过分析生成的表格,构建基于Hive表格的Social Network。

而在这每一步中,生成的数据的元数据都会被存入Atlas。

Search on Atlas

Search based on DB

Search based on Application

表格元数据

血缘

文章目录
  1. 1. Apache Atlas详解
    1. 1.1. 什么是Atlas?
    2. 1.2. 数据孤岛与数据湖
      1. 1.2.1. 数据孤岛
      2. 1.2.2. 数据湖
    3. 1.3. Atlas可以做什么?
      1. 1.3.1. 你面对的问题
      2. 1.3.2. Atlas的解决方式
    4. 1.4. Apache Atlas的功能
      1. 1.4.1. 数据分类
      2. 1.4.2. 集中化审计
      3. 1.4.3. 搜索 & 血缘(查看)
      4. 1.4.4. 安全&政策 引擎
    5. 1.5. Atlas 的架构
      1. 1.5.1. 主要模块
      2. 1.5.2. Bridges
      3. 1.5.3. Notification
      4. 1.5.4. Apache Atlas的应用
        1. 1.5.4.1. Apache Atlas – Knowledge Store
        2. 1.5.4.2. Apache Atlas – Data Life Management
        3. 1.5.4.3. Apache Atlas – Audit Store
        4. 1.5.4.4. Apache Atlas – Policy Engine
        5. 1.5.4.5. Apache Atlas – Security
    6. 1.6. Type System
      1. 1.6.1. Data Types Overview
      2. 1.6.2. Types Instances Overview
    7. 1.7. Search
      1. 1.7.1. Falcon UI
    8. 1.8. Walk Through A Use Case
      1. 1.8.1. Collect Data
      2. 1.8.2. Search on Atlas
        1. 1.8.2.1. Search based on DB
        2. 1.8.2.2. Search based on Application
        3. 1.8.2.3. 表格元数据
        4. 1.8.2.4. 血缘