我知道有幾個類似的問題,但我仍然對此感到困惑。由於需要這種機制(將數據從一個羣集複製到另一個羣集),我正在尋找一些解釋。卡桑德拉 - 從一個集羣複製sstable快照到另一個集羣
讓我們假設一個非常簡單的場景。我想將一個表從一個cassandra集羣(C1)複製到另一個(C2)。我正在複製的表格被稱爲「item」。
我們假設每個羣集的節點數是相同的(每個羣集中的源節點和目標節點都是4)。不確定事情與否。
我正在嘗試使用快照和sstableloader來做伎倆。我已經能夠創建快照,將C1:N1(羣集1節點1 .../myspace/item-xxxxxx/snapshot/######)中的快照文件複製到目標表目錄C2:N1(羣集2節點1:.../myspace/item-xxxxxx)。我用sstableloader來加載數據並運行nodetool修復。完善。唯一的問題是,由於加載的快照僅來自其中一個源節點,我只能「還原」部分數據(大約1k行中的485個)。所以我想我會再次將快照從C1:N2複製到C2:N1並加載它。問題是所有的表文件都已經存在於C2:N1上。如果我將C1:N2中的快照文件複製到C2:N1上的表格目錄,我將刪除已存在的文件。我沒有檢查全部4個目標節點,但是我確實檢查了目標的節點2,並且項目表目錄也已經存在於數據文件中。我猜目標上的所有節點都有數據文件,所以我堅持如何安裝其他3個源節點快照文件。
長話短說(如果可能的話): 我該如何將多個源快照文件(源羣集上每臺主機上的一個源文件)加載到目標羣集?並且使事情複雜化起來,如果源和目標集羣有不同數量的節點(我認爲在目標上擁有更少的節點可能會成爲更大的問題)會有關係嗎?
在我看來,真正需要的是在SOURCE集羣上運行ssableloader並將數據傳輸到目標集羣的方法。我會想,會讓生活變得更容易。
在此先感謝。
-Jim
所以sstableloader與「-d IP」運行。當我這樣做時,它就是目標IP,並且從一個目標節點運行它(並且我使用快照來加載數據)。也許這就是我出錯的地方。你說我可以從源集羣運行它。我是否放置了「-d SourceIP」?如果是這樣,我在哪裏指定要連接的目標羣集IP? –
'-d'應該是目標集羣中的任何節點。該工具可以從任何地方運行 –
感謝您的迴應。所以對於我缺乏這方面的知識感到抱歉,但是如何指定要連接到的源羣集呢?只需在源羣集上運行它?這就是說,那麼你就不能在目標集羣上運行sstableloader然後正確(因爲我們無處指定源IP)? –