Atlas是Hadoop的数据治理和元数据框架。
Atlas是一组可扩展和可扩展的核心基础治理服务,使企业能够有效,高效地满足Hadoop中的合规性要求,并允许与整个企业数据生态系统集成。
Apache Atlas为组织提供了开放的元数据管理和治理功能,以建立其数据资产的目录,对这些资产进行分类和治理,并为数据科学家,分析师和数据治理团队提供围绕这些数据资产的协作功能。
不熟悉的同学可以参考下面的文章入门。
而Flink则是实现Google Dataflow理念的大数据实时处理框架。
近年来,流处理变得越来越流行。实时数据分析有更大的价值所在,而现在许多系统都是连续的事件流,除了互联网领域,车联网,电力系统,穿戴设备等等的数据都是以事件流的方式收集并处理的。但目前为止大多数公司并没有用流处理的方式解决实时大数据分析的问题,原因可能是有限数据的存储更容易,而sql等分析方式也更简单。但只有用流的方式处理这种数据才是更符合实际的,当然这个困难很大,涉及数据一致性与时间的问题,其实已经属于物理学范畴。
基于Flink的实时数仓也开始在越来越多的公司搭建起来,相当于离线数仓,实时数仓的数据血缘更难收集,元数据管理也更加复杂。
在Atlas的官方也并不支持Flink的元数据管理,但是有很多公司都在努力尝试解决这个问题。
本文选自Flink对接血缘系统Atlas的实现方案,思路有很多值得借鉴之处。原文获取请在后台回复 “atlas20220117”。
1、为什么Flink需要血缘
在Flink任务执行中随着业务的增加变得越来越复杂,在整个数据链路中Flink任务将会多次的调度执行。
而Flink的任务显示无法追踪Source/Sink的上游或下游全景链路。
2、Atlas的血缘实现
Atlas作为Hadoop体系的元数据管理工具,提供了丰富的元数据管理功能。
1、元数据检索
Atlas 提供了对元数据进行了全量 的收集,并支持多种元数据查询 或检索方式。
2、元数据标签
Atlas 提供了对元数据进行打标签 的功能,并且可以通过标签进行 反向查找。
3、血缘管理
Atlas 提供了交互式血缘分析和管理功能。
而Atlas的架构也非常的清晰。
Atlas 通过插件(Hook)的方式 在服务段注入捕获代码,并将元 数据提交至Kafka
Atlas服务从Kafka中消费元数据 信息,并将元数据写入到 JanusGraph(on HBase) 和 Solr 两个系统
Atlas 通过其他应用通过RestAPI 方式向其他第三方服务提供元数 据查询和检索的服务
3、两者对接
如何将两个系统打通呢?
需要实现三件事。
- 在Atlas中定义Flink的相关类型
2.在Flink中定义相关的Hook
3.抓取Flink Connector的元数据
最终效果:
单个Flink任务
多个Flink任务
当然在当前实现中还有很多的不足和改进之处。
原文获取请关注大数据流动在后台回复 “atlas20220117”