hadoop集羣間數據遷移工具 原

背景

    當前比較流行的hdfs間數據遷移工具有hadoop默認提供的distcp,阿里開源的DataX,這些工具能夠滿足常規的大部分需求,但是當時碰到hadoop版本不一致、keberos授權等場景時就行不通了。針對這些特殊的應用場景和實際需求我就構思並實現了HdfsDataExchanger這種實現方案。通過在一臺可以訪問兩邊hadoop集羣的中轉機上部署HdfsDataExchanger就可以實現將一個集羣的數據遷移到另一個集羣。HdfsDataExchanger提供單機多線程數據遷移,不支持分佈式並行執行。

功能

  1. 不同版本的hdfs間文件遷移
  2. 本地文件系統與hdfs間文件遷移

不同文件系統間數據交換

原理

  1. 抽象一套hdfs文件操作接口。
  2. 使用源集羣和目標集羣對應版本的hadoop分別實現接口。
  3. 使用jetty的WebAppClassLoader分別加載兩套(源和目標)hdfs相關的jar,並創建對應的FileSystem。
  4. 使用源FileSystem讀取數據到緩衝區,然後使用目標FileSystem將緩衝區的數據寫入到目標文件。
  5. 單機多線程執行,每個線程都以文件爲單位進行遷移,完成之後再拿取下一個待遷移的文件。

實現原理

Github

https://github.com/SebastinHe/HdfsDataExchanger

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