Apache Atlas2.0 第四节 执行流程

  1. 首先从官网查了一下支持的数据源:

Hive sqoop Falcon Storm

普及一下Apache Falcon是一个开源的hadoop数据生命周期管理框架, 它提供了数据源 (Feed) 的管理服务,如生命周期管理,备份,存档到云等,通过Web UI可以很容易地配置这些预定义的策略, 能够大大简化hadoop集群的数据流管理

  1. 安装之前需要手动配置 atlas-application.properties包括SOLR,KAFKA, HBASE,支持配置其他集群
  2. 读取配置加载类atlas-plugin-classloader-1.1.0.jar
  3. atlas_start.py 加载一些基础的Type,(基本都是写死到代码层面的)源码(HiveDataTypes
  4. atlas安装并启动完之后,这个时候系统还是空的,atlas是 通过HOOK去监听你的HIVE语句,所以一般我们会通过atlas的import_hive.sh先把HIVE里的表,数据库等信息全部导入到atlas, 之后如果表有操作,通过接收KAFKA的数据再进行处理
  5. 以Hive为例说明:

导入 Hive Metadata,org.apache.atlas.hive.bridge.HiveMetaStoreBridge 使用 org.apache.atlas.hive.model.HiveDataModelGenerator 中定义的模型将 Hive 元数据导入 Atlas。 import-hive.sh 命令可以用来方便这一点。脚本需要 Hadoop 和 Hive 类路径 jar。 对于 Hadoop jar,请确保环境变量 HADOOP_CLASSPATH 已设置。另一种方法是将 HADOOP_HOME 设置为指向 Hadoop 安装的根目录同样,对于 Hive jar,将 HIVE_HOME 设置为 Hive 安装的根目录将环境变量 HIVE_CONF_DIR 设置为 Hive 配置目录复制 ${atlas-conf}/atlas-application.properties 到 hive conf 目录

Hive 在使用 hive hook 的 hive 命令执行上支持侦听器。 这用于在 Atlas 中使用 org.apache.atlas.hive.model.HiveDataModelGenerator 中定义的模型添加/更新/删除实体。 hive hook 将请求提交给线程池执行器,以避免阻塞命令执行。 线程将实体作为消息提交给通知服务器,并且服务器读取这些消息并注册实体,里面有各种配置信息,请查看http://atlas.apache.org/Configuration.html

以字段血缘关系为例说明

ColumnLineageProcess 类型是 Process 的子类,这将输出列与一组输入列或输入表相关联

Lineage 还捕获 Dependency 的类型:当前的值是 SIMPLE,EXPRESSION,SCRIPT

SIMPLE依赖: 意味着输出列具有与输入相同的值

EXPRESSION依赖: 意味着输出列被输入列上的运行时中的一些表达式(例如Hive SQL表达式)转换。

SCRIPT依赖: 表示输出列由用户提供的脚本转换。

在 EXPRESSION 依赖的情况下,表达式属性包含字符串形式的表达式

由于 Process 链接输入和输出 DataSet,我们使 Column 成为 DataSet 的子类

Limitations(规则)以下 hive 操作由 hive hook 当前捕获

create database

create table/view, create table as select

load, import, export

DMLs (insert)

alter database

alter table (skewed table information, stored as, protection is not supported)

alter view

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章