2016-10-12 40 views
0

我們的Cassandra集羣在AWS EC2上運行,環中有4個節點。我們希望將整個環境遷移到Azure。 我們使用該流程在現有數據中心(AWS EC2)中添加新數據中心(Azure),並使用策略爲NetworkTopology並使用GossipingPropertyFileSnitch。使用NetworkTopology進行Cassandra遷移後的數據不匹配

添加新數據中心後,我們在新數據中心的所有節點上運行以下命令。 #nodetool重建 - 「數據中心名稱」

現有數據中心中所有節點上的數據總計約爲3 TB。 重建新數據中心需要大約6-7天的時間,並且system.log說 - 完成所有會話。我們檢查了新數據中心中每個節點上的數據庫大小,發現所有4個節點的大小都比現有數據中心小(大約75gb,即總共300GB)。

有人請讓我知道,如果這是檢查新數據中心的數據是否與現有數據中心相同的正確方法。

回答

1

數據大小不是檢查數據不匹配的正確方法。

尺寸可能會有所不同,由於種種原因,他們中的一些我能想到的:

  1. 壓實:你有什麼壓實策略?應用程序的數據是不可變的嗎?如果是,那麼壓實不是原因,否則可能是。
  2. Flush:在檢查這些尺寸之前是否刷新節點?如果沒有,那麼一些數據可能在memtables中。
  3. 什麼是關鍵緩存大小等?你是如何精確計算數據大小的?它是一個簡單的「du」數據目錄還是單獨的表格文件添加在一起?因爲數據目錄包含索引文件,表格中的實際數據等。同樣,這不是正確的方法。

我的建議是首先查看每個表中的行數。確保兩個DC的所有設置都相同。然後編寫一個spark工作來檢查一致性(通過校驗和或單個字段,校驗和可能會更快)。確保火花作業以最佳方式運行並且不需要洗牌數據,它應該能夠在幾個小時內運行並給出結果。

注意:這是我可以做的最好的事情,而無需真正瞭解更多細節。

相關問題