2015-05-12 48 views
1

我需要將couchbase數據遷移到HDFS,但db和Hadoop集羣不能彼此訪問。所以我不能以推薦的方式使用sqoop。有沒有辦法使用sqoop將couchbase數據導入本地文件(而不是HDFS)。如果可以,我可以這樣做,然後使用ftp傳輸本地文件,然後再次使用sqoop將它們傳輸到HDFS。Couchbase到本地文件導出

如果這是一個不好的解決方案,那麼是否有任何其他方式我可以在本地文件中傳輸所有的cb數據。在這個cb集羣上創建視圖是一項艱鉅的任務,我想避免使用它。

回答

0

替代解決方案(也許不是優雅,但它的工作原理):

  1. 使用Couchbase備份實用程序:cbbackup並在本地保存的所有數據。
  2. 將備份文件傳輸到HDFS可達網絡主機。
  3. 在可訪問HDFS的網段中安裝Couchbase,並使用備份過程中的Couchbase恢復來填充該實例。
  4. 針對可訪問HDFS的Couchbase實例使用Scoop(推薦方式)。
0

您可以使用隨Couchbase安裝附帶的cbbackup實用程序將所有數據導出到備份文件。默認情況下,備份實際上是以SQLite格式存儲的,所以您可以將它們移動到Hadoop集羣,然後使用任何JDBC SQLite驅動程序分別使用Sqoop從每個* .cbb文件導入數據。我實際上寫了一個關於這個的blog,你可以看看。

爲了讓你開始,這裏有很多JDBC SQLite drivers在那裏。

+0

這似乎是一個非常可行的解決方案:)感謝提示。一個問題 ; cbbackup如何照顧副本?換句話說,如果我們從所有節點中取出cbbackup,它是否會包含相同數據的多個副本,或者它會在內部計算出來? – user3385957

+0

不,cbbackup僅導出活動數據並忽略副本。 –

0

您可以使用couchbase kafka適配器將數據從couchbase傳輸到kafka,也可以從kafka傳輸,您可以將其存儲在任何您喜歡的文件系統中。 CouchbaseKafka適配器使用TAP協議將數據推送到kafka。

https://github.com/paypal/couchbasekafka