2017-05-08 69 views
6

我們已經實現了一個使用Sqoop將數據從RDBMS加載到我們的hadoop集羣的解決方案,僅用於追加數據,它在維度數據到hbase時進入配置單元。將數據從RDBMS加載到具有多個目標的Hadoop

現在我們設置兩個相同的Hadoop集羣,它們是彼此的備份集羣。我們想要將來自RDBMS的數據一次加載到兩個集羣中。 Sqoop不允許我們這樣做。我們已經看到了一些流式傳輸解決方案,如streamsets或nifi,它們允許從一個地方獲取數據並一次發送到多個目的地。此外,我們正在考慮使用sqoop將數據加載到一個羣集,然後設置一個同步作業以將數據定期複製到另一個羣集,這聽起來更恰當,因爲我們擁有的數據量很大。

有人可以分享一些真實的生活經驗嗎?

+0

我們可以使用sqoop從RDBMS加載數據到Hadoop集羣 –

+0

,我們可以使用Hadoop的DistCp使用從一個羣集複製到另一個Hadoop集羣 –

+0

@KanagarajDhanapal是的,你可以使用DistCp使用,但是你如何處理的增量變化,更新? – Shengjie

回答

2

我看到兩個選項來做到這一點:

  • 創建了兩個差異Sqoop工作,以複製到每個集羣。這將更像是兩組活動數據而不是備份,因爲兩者都是從源更新的。這將在關係數據庫系統上創建額外的重載,因爲將創建x2(大約)連接來執行數據複製。

  • 使用單個Sqoop作業將數據加載到一個羣集中。從那裏複製到其他羣集使用distcp -update(或)distcp -append。這種方法的優點很少:

    • 這應該會減少關係數據庫系統的負載。

    • 您可以利用MR的功能更快地複製數據黑白羣集。

    • 您可以選擇使用Oozie安排備份頻率。

    • 您可以在主動副本或備份副本上工作。

讓我知道你的想法,如果你已經對任何解決方案的敲定,請你分享。

相關問題