Apache Falcon是一个开源的hadoop数据生命周期管理框架, 它提供了数据源 (Feed) 的管理服务,如生命周期管理,备份,存档到云等,通过Web UI可以很容易地配置这些预定义的策略, 能够大大简化hadoop集群的数据流管理.
本文主要介绍了Falcon的基本特性, 核心概念以及架构, 最后讨论了它的优点和局限.
Hortonworks的hadoop发行版HDP中,数据治理包括Falcon和Atlas这两个组件.Atlas主要负责元数据的管理. Falcon主要负责数据生命周期的管理.
Falcon最初由移动广告公司Inmobi开发,2012年开始在Inmobi内部投入使用,2013年成为Apache孵化项目,2015年孵化毕业成为Apache顶级项目,目前最新的版本是0.10.
核心特性
- 集中式数据生命周期管理: Falcon在UI上提供wizard来定义数据导入,处理和导出的流水线, 同时可以管理监控流水线的运行.
- 业务一致性和灾难恢复: Falcon可以拷贝HDFS文件和hive表.
- 解决审计和合规性方面的需求: 可以利用falcon查看数据流水线的血缘关系,审计日志,以及为业务流程和数据打标签,方便业务管理.
Falcon如何工作
Falcon的使用者可以通过命令行或者Falcon Web UI来创建数据流水线,数据流水线由集群存储位置定义,数据源和处理逻辑组成,这三部分分别为由xml文件定义的实体.
实体 (entity)
falcon中定义的三种实体包括:
- cluster: 支持定义多个集群.
- feed: 数据源, 支持类型包括hdfs路径和hive表.
- process: 处理逻辑,支持oozie,hive,pi