2015-10-20 137 views
3

我在Datastax 4.6羣集上有一個很大但簡單的Cassandra數據庫。對於這個非常簡單的用例,許可證續訂是禁止的,我試圖遷移到直接的Apache或Datastax Comunity版本。首先是可以做一個內聯更新?將Datastax Enterprise Cassandra遷移到Apache Cassandra或Datastax社區?

我已經改變了所有的密鑰空間來刪除​​「EverywhereStrategy」複製策略,但我仍然收到一個錯誤,我試圖加入集羣的DSC版本的cassandra不支持它。我使用Like Cassandra版本(2.0.16),其他大部分內容似乎都很接近。

java.lang.RuntimeException: org.apache.cassandra.exceptions.ConfigurationException: Unable to find replication strategy class 'org.apache.cassandra.locator.EverywhereStrategy'

如果這是不可能做到的在線升級什麼是遷移一個體面的大小(30節點,150TB)集羣的最佳策略是什麼?

+0

我忘記了另一個環中的單獨節點。我在該節點上運行修復,我認爲它擺脫了EverywhereStrategy的最後一個引用。然後,我有一箇舊的測試列家族,其索引索引導致Solr集成所需的缺失類出現問題。我放棄了這張桌子,現在我已經能夠加入節點,並且數據似乎正在傳遞。 –

回答

3

因此,要完成這項工作,您必須提取您在任何表格上可能具有的任何DSE功能。

這意味着我必須在dse_system表更改複製策略從EverywhereStrategy到SimpleStrategy與RF = 3(或幾乎所有的東西轉換後,你可以將這個密鑰空間)錯誤信息是:

java.lang.RuntimeException: org.apache.cassandra.exceptions.ConfigurationException: Unable to find replication strategy class 'org.apache.cassandra.locator.EverywhereStrategy'

我也必須刪除未使用的CFS密鑰空間。我們從來沒有使用過hadoop/CFS集成,所以我們在這些密鑰空間中一無所有。我沒有捕捉到這個錯誤。

大約一年前,我們在這個集羣上測試的表上有一個solr索引,所以我不得不放棄這個columnfamily。該錯誤信息是:

java.lang.RuntimeException: java.lang.ClassNotFoundException: com.datastax.bdp.search.solr.Cql3SolrSecondaryIndex

可能有其他不兼容,如果你使用Datastax企業的其他功能,你將不得不刪除,但這足以讓我得到了遷移工作。

1

dse-core.jar包含EverywhereStrategy類。

我們通過以下操作解決了這個問題:

更換除上述JAR一切,所以節點可以拿出罰款。一旦所有節點都遷移到OSS,請刪除dse_system密鑰空間(使用此複製),刪除JAR並逐個重新啓動節點。

相關問題