行業動態/INDUSTRY DYNAMICS
當前位置 > 首頁 > 新聞中心 > 行業動態
Hadoop的數據采集框架
發布時間:2018-09-19點擊量:

Hadoop的數據采集框架

問題導讀:

Hadoop數據采集框架都有哪些?
Hadoop數據采集框架異同及適用場景?

Hadoop提供了一個高度容錯的分布式存儲系統,幫助我們實現集中式的數據分析和數據共享。在日常應用中我們比如要將各種數據采集到HDFS存儲服務中去,說到將數據采集到HDFS,我們熟知的框架包括:

  • Apache Sqoop
  • Apache Flume
  • Gobblin DataX
  • Kettle

以及其他很多針對特定數據源的采集工具:比如針對Cassandra數據源的Aegisthus,針對mongodb的mongo-hadoop等等。

本文就對以上常見的數據采集服務進行簡單的介紹,幫助我們了解各個項目的特點以及適用場景。

Apache Sqoop

Sqoop : SQL-to-Had oop,用于在關系型數據庫(RDBMS)和HDFS之間互相傳輸數據。

Sqoop 啟用了一個MapReduce任務來執行數據采集任務,傳輸大量結構化或半結構化數據的過程是完全自動化的。其主要通過JDBC和關系數據庫進行交互,理論上支持JDBC的Database都可以使用Sqoop和HDFS進行數據交互。

Sqoop目前分為兩個版本Sqoop1和Sqoop2。這是兩個完全不同的版本,完全不兼容。Sqoop1了解的朋友都知道它就是一個命令行腳本,而Sqoop2相比Sqoop1引入了sqoop server,集中化的管理Connector,引入基于角色的安全機制,而且支持多種訪問方式:cli客戶端,Web ui和Rest API。

Sqoop不支持文件解析入庫,適用于關系型數據庫與HDFS/Hive/HBase之間互相傳輸數據。它支持多種關系型數據庫如mysql、oracle、postgresql??梢愿咝Э煽氐倪M行數據導入導出。

Github Star 462, Fork 362

Apache Flume

Apache Flume是一個分布式、可靠、高可用的日志收集系統,支持各種各樣的數據來源,如http,log文件,監聽端口數據等等,將這些數據源的海量日志數據進行高效收集、聚合、移動,最后存儲到指定存儲系統中(可擴展),如kafka、HDFS分布式文件系統、Solr,HBase等。

Flume基于流式數據,適用于日志和事件類型的數據收集,重構后的Flume-NG版本中一個agent(數據傳輸流程)中的source(源)和sink(目標)之間通過channel進行鏈接,同一個源可以配置多個channel。多個agent還可以進行鏈接組合共同完成數據收集任務,使用起來非常靈活。

Github Star 1418, Fork 1092

Gobblin

Gobblin是用來整合各種數據源的通用型ETL框架,在某種意義上,各種數據都可以在這里“一站式”的解決ETL整個過程,專為大數據采集而生。

作為一個通用框架,Gobblin的接口封裝和概念抽象做的很好,作為一個ETL框架使用者,我們只需要實現我們自己的Source,Extractor,Conventer類,再加上一些數據源和目的地址之類的配置文件提交給Gobblin就行了。Gobblin相對于其他解決方案具有普遍性、高度可擴展性、可操作性。

Github Star 1381, Fork 540

DataX

DataX 是一個異構數據源離線同步工具,致力于實現包括關系型數據庫(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各種異構數據源之間穩定高效的數據同步功能。

被阿里開源之后的DataX社區并不活躍,但是好在程序的架構設計的好,大部分用戶都會選擇fork之后基于其進行二次開發。DataX本身由阿里開發對于阿里自身的數據庫比如ODPS、ADS等支持更好。

Github Star 1128, Fork 478

Kettle

Kettle是一款開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運行,綠色無需安裝,數據抽取高效穩定。它允許你管理來自不同數據庫的數據,通過提供一個圖形化的用戶環境來描述你想做什么,而不是你想怎么做。

Kettle 中文名稱叫水壺,寓意就是希望把各種數據放到一個壺里,然后以一種指定的格式流出。

Kettle是CS架構,擁有自己的管理控制臺,同樣也可以通過Java代碼與我們的工程進行集成,在程序中完成kettle的轉換、執行等操作。

Github Star 1956, Fork 1476

本文簡單介紹了上面幾種數據采集框架,當我們使用的時候需要考慮到業務場景,關系庫相關采集的可以首選sqoop。日志文件等實時采集錄入則選擇Flume,文件和數據庫都要兼顧則選擇Gobblin。后續會對這三類進行詳細介紹。至于DataX可以看看其架構,設計思想非常不錯。

上一篇:大數據行業職業薪資

     

下一篇:存儲是怎樣煉成的

地址:內蒙古自治區呼和浩特市新城區波士名人A座1540  全國服務熱線:0471-2533864  郵箱:wangzq@qianyunits.com
版權所有:內蒙古乾云信息技術服務有限公司  備案號:蒙ICP備18004222號-1
網站建設、網頁設計、網站制作由內蒙古青年網絡電子科技有限責任公司提供   

關注微信公眾號