2016-05-15 84 views
0

我試圖使用sstableloader將數據加載到Cassandra 3.5中。在Cassandra 2.1.9下使用nodetool snapshot捕獲數據。除了一個以外,所有表格都可以正常加載它很小,只有2列和20行。所以,我輸入了這個bug:https://issues.apache.org/jira/browse/CASSANDRA-11806。該錯誤很快就以重複的方式關閉。它似乎不是重複的,因爲原始情況是就地升級節點,而不是使用sstableloader加載數據。如何將Cassandra 2.1.9的數據遷移到新的3.5安裝

即便如此,我嘗試應用給出的建議來運行upgradesstable [原文如此]。

從一個Cassandra版本升級到另一個版本的指示看起來似乎很粗略。下面是基於什麼我做我的工作備份/恢復和信息從如何升級各種卡桑德拉文檔囊括:

  • 快照從PROD數據(卡桑德拉2.1.9),像往常一樣
  • 將數據恢復到卡桑德拉2.1.14我的工作站上運行
  • 驗證恢復到2.1.14(它的工作)
  • 將數據複製/數據/ makeyourcase成卡桑德拉3.5安裝
  • 火起來卡桑德拉3.5
  • 運行nodetool upgradesstables到升級sstables到3.5

nodetool upgradesstables失敗:

>./bin/nodetool upgradesstables 
error: Unknown column role in table makeyourcase.roles 
-- StackTrace -- 
java.lang.AssertionError: Unknown column role in table makeyourcase.roles 

所以,問題:是否有可能直接從2.1.x的升級到3.5?什麼是實際的升級過程? http://docs.datastax.com/en/latest-upgrade/upgrade/cassandra/upgradeCassandraDetails.html的過程似乎缺少重要細節。

+0

您是否還複製了系統密鑰空間目錄或僅複製了您的密鑰空間數據? – mmatloka

+0

@mmatloka只是我的密鑰空間數據。 –

+0

Cassandra保留系統密鑰空間有關表模式的信息。嘗試使用完全相同的完整數據目錄(或在移動數據之前創建模式,但將其移至創建模式時創建的新創建的目錄中)。 – mmatloka

回答

0

事實證明,這是隨着時間的推移表格狀態變化的問題。

由於表格很小,我可以通過使用COPY將數據導出到CSV然後將其導入新版本來遷移數據。

看看https://issues.apache.org/jira/browse/CASSANDRA-11806討論另一個解決方法和未來錯誤修復。

相關問題