當前位置:
首頁 > 知識 > 自動化HDFS數據複製機制的簡單方法!

自動化HDFS數據複製機制的簡單方法!

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

自動化HDFS數據複製機制的簡單方法!

在本章的前半部分,我們研究了兩種可以將半結構化和二進位數據轉換為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項目(https://github.com/alexholmes/ hdfs-file-slurper)來協助自動化。我們在前文詳細介紹了HDFS File Slurper,請在繼續使用此技術之前閱讀該部分。

HDFS Slurper支持將數據從HDFS移動到本地目錄,我們需要做的就是翻轉源目錄和目標目錄,如Slurper配置文件以下所示:

自動化HDFS數據複製機制的簡單方法!

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

總結

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

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

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT168企業級 的精彩文章:

如何在Ubuntu 18.04伺服器上安裝TensorFlow(Nvidia GPU)
2018華為全聯結大會——AI人才大戰

TAG:IT168企業級 |