自動化HDFS資料複製機制的簡單方法!

大資料頻道發表於2018-10-23

到目前為止,我們已經看到了從HDFS複製資料的不同選擇。大多數機制沒有自動化或排程功能,不過是用於訪問資料的低階方法。如果希望自動化資料副本,可以將其中一種低階技術包含在排程引擎(如cron或Quartz)中。但是,如果正在尋找開箱即用的自動化工具,本節很適合你閱讀。

在本章的前半部分,我們研究了兩種可以將半結構化和二進位制資料轉換為HDFS的機制:開源HDFS File Slurper專案和Oozie,它們觸發了資料入口工作流程。使用本地檔案系統進行輸入(以及輸出)的挑戰是,在叢集上執行的map和reduce任務將無法訪問特定伺服器上的檔案系統,將資料從HDFS移動到檔案系統有三個廣泛的選擇:

  • 在伺服器(例如Web伺服器)上託管agent,然後使用MapReduce將其寫入。

  • 在MapReduce中寫入本地檔案系統,然後在後處理步驟中觸發遠端伺服器上的指令碼以移動該資料。

  • 在遠端伺服器上執行程式以直接從HDFS提取資料。

第三種選擇是首選方法,因為最簡單且最有效,因此這是本節的重點。我們將瞭解如何使用HDFS File Slurper自動將檔案從HDFS移出到本地檔案系統。

從HDFS匯出檔案的自動機制

假設有MapReduce用HDFS編寫的檔案,你想要將它們自動提取到本地檔案系統。任何Hadoop工具都不支援此類功能,因此必須檢視其他方法。

問題

自動將檔案從HDFS移動到本地檔案系統。

解決方案

HDFS檔案Slurper可用於將檔案從HDFS複製到本地檔案系統。

討論

這裡的目標是使用HDFS File Slurper專案( hdfs-file-slurper)來協助自動化。我們在前文詳細介紹了HDFS File Slurper,請在繼續使用此技術之前閱讀該部分。

HDFS Slurper支援將資料從HDFS移動到本地目錄,我們需要做的就是翻轉源目錄和目標目錄,如Slurper配置檔案以下所示:

你會注意到,HDFS中不僅有源目錄,而且還有工作,完成和錯誤目錄。這是因為需要能夠在目錄之間自動移動檔案,而不會產生跨檔案系統複製的昂貴開銷。

總結

此時,你可能想知道如何觸發Slurper來複制剛剛使用MapReduce作業編寫的目錄。當MapReduce作業成功完成時,它會在作業輸出目錄中建立一個名為_SUCCESS的檔案。這似乎是啟動輸出程式將該內容複製到本地檔案系統的完美觸發器。事實證明,Oozie有一種機制可以在檢測到這些Hadoop檔案“成功”時觸發工作流程,但這裡的挑戰是Oozie執行的任何工作都是在MapReduce中執行的,所以它不能用於執行直接轉移。可以編寫自己的指令碼,輪詢HDFS以查詢已完成的目錄,然後觸發檔案複製過程。如果原始檔需要保持不變,那麼檔案複製過程可以是Slurper或簡單的hadoop fs -get命令。

在本章的下一篇文章中,我們將介紹如何將Hadoop中的資料寫入關聯式資料庫。

相關文章:

1、《第一章:Hadoop生態系統及執行MapReduce任務介紹!》連結:  http://blog.itpub.net/31077337/viewspace-2213549/

2、《學習Hadoop生態第一步:Yarn基本原理和資源排程解析!》連結:  http://blog.itpub.net/31077337/viewspace-2213602/

3、《MapReduce如何作為Yarn應用程式執行?》連結:  http://blog.itpub.net/31077337/viewspace-2213676/

4、《Hadoop生態系統各元件與Yarn的相容性如何?》連結:  http://blog.itpub.net/31077337/viewspace-2213960/

5、《MapReduce資料序列化讀寫概念淺析!》連結:  http://blog.itpub.net/31077337/viewspace-2214151/

6、《MapReuce中對大資料處理最合適的資料格式是什麼?》連結:  http://blog.itpub.net/31077337/viewspace-2214325/

7、《如何在MapReduce中使用SequenceFile資料格式?》連結:  http://blog.itpub.net/31077337/viewspace-2214505/

8、《如何在MapReduce中使用Avro資料格式?》連結:  http://blog.itpub.net/31077337/viewspace-2214709/

9、《企業自有資料格式雜亂,MapReduce如何搞定?》連結:  http://blog.itpub.net/31077337/viewspace-2214826/

10、《企業使用Hadoop的重大挑戰:如何在HDFS中組織和使用資料?》連結:  http://blog.itpub.net/31545816/viewspace-2215158/  

11、《如何在HDFS中進行資料壓縮以實現高效儲存?》連結:   http://blog.itpub.net/31545816/viewspace-2215281/

12、《Hadoop資料傳輸:如何將資料移入和移出Hadoop?》連結:  http://blog.itpub.net/31545816/viewspace-2215580/

13、《如何將日誌和二進位制檔案連續移入HDFS?》連結:  http://blog.itpub.net/31545816/viewspace-2215948/

14、《如何將傳統關聯式資料庫的資料匯入Hadoop?》連結:  http://blog.itpub.net/31545816/viewspace-2216000/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545816/viewspace-2216448/,如需轉載,請註明出處,否則將追究法律責任。

相關文章