Apache Falcon簡介-Hadoop數據生命週期管理框架

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,pig和spark作爲作業流引擎.

    Falcon pipeline

數據流水線 (data pipeline)

每個實體是單獨定義的,把實體組合起來就形成了數據流水線,Falcon提供了很多預定義的策略來處理數據拷貝,數據保留時間和存檔.

架構原理

Falcon把用戶定義的feed和process
翻譯成調度器的作業配置文件,這些作業流由調度器管理,falcon實際上只維護實體之間的依賴關係,所以它是個輕量級的工具.Falcon實體的配置文件(xml文件)可以存在本地或者hdfs上.

Falcon架構

調度器

Falcon目前默認使用oozie作爲調度器, 由於oozie調度器的一些限制,falcon正在開發自己的調度器,預計將在以後的版本中正式發佈.

與oozie集成

Falcon通過JMS (Java消息服務) 與oozie進行通信,控制oozie上對應的作業流,oozie也通過JMS給falcon報告作業運行情況.

討論

總結來說, Falcon是在調度器Oozie上封裝了一層,用戶可以用Web UI上的wizard來配置數據流水線, 數據生命週期管理非常方便. 它最大的優點就是增強了Oozie的易用性, 對於業務邏輯比較複雜的系統, 用Falcon管理比起直接用Oozie會大大簡化.
但是調研中發現, Falcon Web UI上呈現的血緣關係只是以實體爲中心, 並沒有全局層面上整個data pipeline的血緣關係. 如果能夠以pipeline爲中心, 畫出血緣關係圖,提供zoom in功能, 以及在圖中把實體運行狀態可視化, 將會是一個很有用的特性.
雖然被稱爲數據治理工具,但是它的功能只是集中在數據生命週期管理和流水線管理,要與元數據管理(Atlas),數據安全管理(Ranger)等組合,才能形成一個完整的數據治理解決方案.
調研發現, Falcon的關注度並不算高,能搜到的英文資料主要是Apache和Hortonworks官網,中文資料幾乎沒有. 目前也沒有看到哪個大公司在生產環境中用Falcon,我認爲主要是因爲Falcon提供的功能單一, 只解決了數據治理領域的一小部分需求,用戶更願意使用集中化的數據治理工具,或者自己開發.

如何使用Falcon

安裝

如果安裝了HDP,則可以使用Ambari上的Wizard來安裝Falcon,非常簡單,使用默認配置即可. 如果想單獨安裝Falcon, 可以參考Apache Falcon官網的文檔,下載源碼,編譯並安裝Falcon. 鏈接爲:
http://falcon.apache.org/InstallationSteps.html

使用

可以通過Web UI, CLI和Rest API三種方式使用Falcon.

  1. 配置一個簡單的HDFS鏡像的Process, 具體步驟參考http://saptak.in/writing/2015/08/11/mirroring-datasets-hadoop-clusters-apache-falcon

  2. 配置一個簡單的處理E-mail的數據流,包含兩個Feed和兩個Process. 具體步驟參考http://saptak.in/writing/2015/08/13/processing-data-pipeline-with-apache-falcon

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