第1节 数据治理平台对比

目前数据治理的平台 开源并且有详细文档的话就三个
Apache Atlas(Hortonworks) Atlas于2015年7月开始在Hortonworks进行孵化。 Atlas 1.0于2018年6月发布。
git地址:https://github.com/apache/atlas
官网:http://atlas.apache.org/
DataHub (LinkedIn) LinkedIn开源出来的,原来叫做WhereHows 。经过一段时间的发展,datahub于2020年2月在Github开源
git地址:https://github.com/linkedin/datahub
官网:https://datahubproject.io/
Amundsen (Lyft) Lyft 于2019年4月开发了Amundsen,并于10月开源。
git地址:https://github.com/amundsen-io/amundsen
官网:https://www.amundsen.io/

下图是三个项目在github上面的一些情况对比
在这里插入图片描述
在这里插入图片描述

从这里看出 其实 Amundsen 功能是最强大的 不过目前处于比较新的阶段,血缘关系还在开发中并且没有Releases版本的,考虑到项目的周期,实施性等情况,还是建议从Atlas入门,后续可以考虑Amundsen ,
目前有的公司同时采用了Atlas和Amundsen,Atlas处理元数据管理,利用Amundsen强大的数据搜索能力来做数据搜索

第2节 Atlas简介

元数据(MetaData)狭义的解释是用来描述数据的数据。广义的来看,除了业务逻辑直接读写处理的那些业务数据,所有其它用来维持整个系统运转所需的信息/数据都可以叫作元数据。如数据库中表的Schema信息,任务的血缘关系,用户和脚本/任务的权限映射关系信息等。元数据管理:说起来重要 做起来丢掉

Atlas是一组可扩展和可扩展的核心基础治理服务,使企业能够有效,高效地满足Hadoop中的合规性要求,并允许与整个企业数据生态系统集成。
Apache Atlas为组织提供了开放的元数据管理和治理功能,以建立其数据资产的目录,对这些资产进行分类和治理,并为数据科学家,分析师和数据治理团队提供围绕这些数据资产的协作功能。

Atlas由元数据的收集,存储和查询展示三部分核心组件组成。此外,还会有一个管理后台对整体元数据的采集流程以及元数据格式定义和服务的部署等各项内容进行配置管理。
Atlas包括以下组件:

  • Core:Atlas功能核心组件,提供元数据的获取与导出(Ingets/Export)、类型系统(TypeSystem)、元数据存储索引查询等核心功能

    • Type System: Atlas允许用户为他们要管理的元数据对象定义模型
    • Ingest / Export:Ingest 组件允许将元数据添加到Atlas。同样,Export组件将Atlas检测到的元数据更改公开为事件。消费者可以使用这些更改事件来实时响应元数据更改。
    • Graph Engine:Altas使用图模型管理元数据对象。图数据库提供了极大的灵活性,并能有效处理元数据对象之间的关系。除了管理图对象之外,图计算引擎还为元数据对象创建适当的索引,以便进行高效的访问。在Atlas 1.0 之前采用Titan作为图存储引擎,从1.0开始采用 JanusGraph 作为图存储引擎。JanusGraph 底层又分为两块:
      • Metadata Store:采用 HBase 存储 Atlas 管理的元数据;
      • Index Store:采用Solr存储元数据的索引,便于高效搜索;
  • Integration:Atlas对外集成模块。外部组件的元数据通过该模块将元数据交给Atlas管理

    • API: Atlas的所有功能都通过REST API向最终用户公开,该API允许创建,更新和删除类​​型和实体。它也是查询和发现Atlas管理的类型和实体的主要机制。
    • Messaging:用户还可以选择使用基于Kafka的消息传递接口与Atlas集成
  • Metadata source:Atlas支持的元数据数据源,以插件形式提供。当前支持从以下来源提取和管理元数据:

    • Hive
    • HBase
    • Sqoop
    • Kafka
    • Storm
  • Applications:Atlas管理的元数据被各种应用程序使用,以满足许多治理用例。 Atlas Admin UI,Tag Based Policies

第3节 安装配置

3.1 安装依赖

  • Maven 3.6.3
  • HBase 1.1.2(不需要安装,可以自己准备软件包)
  • Solr 5.5.1(不需要安装,可以自己准备软件包)
  • atlas 1.2.0(需要编译)
    官方只提供了源码,没有提供二进制的安装版本,因此Atlas需要编译。

3.2 安装步骤

1、准备软件包

apache-atlas-1.2.0-sources.tar.gz(官网下载,目前最新2.1)
solr-5.5.1.tgz(可以不准备)
hbase-1.1.2.tar.gz(可以不准备)

2、解压缩源码,修改配置
# 解压缩
tar zxvf apache-atlas-1.2.0-sources.tar.gz
cd apache-atlas-sources-1.2.0/
# 修改配置
vi pom.xml
# 修改  HADOOP为你自己的版本
645 <npm-for-v2.version>3.10.8</npm-for-v2.version>
652 <hadoop.version>2.9.2</hadoop.version> 
3、将HBase、Solr的包拷贝到对应的目录中

如果不拷贝这些包,就需要下载,下载 HBase 和 Solr 时速度很慢。这里提前下载完所需的这两个组件,拷贝到对应目录中。

cd apache-atlas-sources-1.2.0
# 创建目录
cd distro/
mkdir solr
mkdir hbase
# 拷贝软件包
cp solr-5.5.1.tgz ./solr/
cp hbase-1.1.2.tar.gz ./hbase/
4、maven设置阿里镜像

cd $MAVEN_HOME/conf

# 在配置文件中添加
vi settings.xml
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
5、Atlas编译
cd apache-atlas-sources-1.2.0
export MAVEN_OPTS="-Xms2g -Xmx2g"
mvn clean -DskipTests package -Pdist,embedded-hbase-solr

编译过程中大概要下载600M左右的jar,持续的时间比较长。(中间可能报错,如果是网络原因报错的话 再继续编译就行)
在这里插入图片描述

编译完的软件位置:apache-atlas-sources-1.2.0/distro/target
编译完的软件:apache-atlas-1.2.0-bin.tar.gz

6、Atlas安装
cd apache-atlas-sources-1.2.0/distro/target
# 解压缩
tar zxvf apache-atlas-1.2.0-bin.tar.gz
mv apache-atlas-1.2.0/ atlas-1.2.0
# 修改 /etc/profile,设置环境变量 ATLAS_HOME

# 启动服务(第一次启动服务的时间比较长,而且会报错,kafka端口连接报错,可能是内嵌的未启动还是怎么,需要启动一次,关闭后在启动第二次就好了的)
cd $ATLAS_HOME/bin
./atlas_start.py
# 检查后台进程 (1个atlas、2个HBase、1个solr后台进程)
ps -ef | grep atlas
/atlas-1.2.0/server/webapp/atlas
hbase-daemon.sh
org.apache.hadoop.hbase.master.HMaster
atlas-1.2.0/solr/server
# 停止服务
./atlas_stop.py

如果与impala的端口冲突的话 可以正在 $ATLAS_HOME/conf/atlas-application.properties 修改端口 (默认的21000)

Web服务:http://linux122:21000/login.jsp
用户名 / 口令:admin / admin
账号的信息存储在文件 conf/users-credentials.properties 中。其中 Password 通过如下方式产生
sha256sum 摘要信息:

echo -n "admin" | sha256sum

在这里插入图片描述
在这里插入图片描述

第4节 Hive血缘关系导入

(注意 要先成功启动过atlas之后 在进行hive血缘导入操作)

1、配置HIVE_HOME环境变量;将 $ATLAS_HOME/conf/atlas-application.properties 拷贝 到
$HIVE_HOME/conf 目录下
ln -s $ATLAS_HOME/conf/atlas-application.properties $HIVE_HOME/conf/atlas-application.properties
2、拷贝jar包
# $ATLAS_HOME/server/webapp/atlas/WEB-INF/lib/ 目录下的3个jar,拷贝到
$ATLAS_HOME/hook/hive/atlas-hive-plugin-impl/ 目录下
jackson-jaxrs-base-2.9.9.jar
jackson-jaxrs-json-provider-2.9.9.jar
jackson-module-jaxb-annotations-2.9.9.jar
ln -s $ATLAS_HOME/server/webapp/atlas/WEB-INF/lib/jackson-jaxrs-base-2.9.9.jar $ATLAS_HOME/hook/hive/atlas-hive-plugin-impl/jackson-jaxrs-base-2.9.9.jar
ln -s $ATLAS_HOME/server/webapp/atlas/WEB-INF/lib/jackson-jaxrs-json-provider-2.9.9.jar $ATLAS_HOME/hook/hive/atlas-hive-plugin-impl/jackson-jaxrs-json-provider-2.9.9.jar
ln -s $ATLAS_HOME/server/webapp/atlas/WEB-INF/lib/jackson-module-jaxb-annotations-2.9.9.jar $ATLAS_HOME/hook/hive/atlas-hive-plugin-impl/jackson-module-jaxb-annotations-2.9.9.jar
3、修改Hive的配置
hive-site.xml增加 hook
<property>
<name>hive.exec.post.hooks</name>
<value>org.apache.atlas.hive.hook.HiveHook</value>
</property>

$HIVE_HOME/conf/hive-env.sh中添加HIVE_AUX_JARS_PATH变量,atlas安装目录下的 hook/hive (如果hive已经配置的话 就吧整个目录放到配置的地方)

export HIVE_AUX_JARS_PATH=/apache-atlas-1.2.0/hook/hive
4、导入hive历史元数据

备注:Hive能正常启动;在执行的过程中需要用户名/口令:admin/admin

import-hive.sh

成功导出可以看见最后的提示信息:Hive Meta Data imported successfully!!! 在浏览器中可以看见:Search 中的选项有变化
在这里插入图片描述

当后续 新增数据库、表等操作能在页面实时看到,并且执行了sql,有数据变动后 能在对应的表中看到血缘关系,

在这里插入图片描述
在这里插入图片描述

Hive hook 可捕获以下操作:

  • create database
  • create table/view, create table as select
  • load, import, export
  • DMLs (insert)
  • alter database
  • alter table
  • alter view
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐