2017-01-23 68 views
1

比方說,我有一個2節點集羣,其中所有的節點具有相同的data_file_directories(與說3文件夾)中cassandra.yaml 配置例如cassandra集羣節點的數據目錄應該相同嗎?

data_file_directories: 
    - E:/Cassandra/data/var/lib/cassandra/data 
    - K:/Cassandra/data/var/lib/cassandra/data 
    - F:/Cassandra/data/var/lib/cassandra/data 

現在讓我們假設我添加一個第三節點集羣與不同的data_file_directories(說1個文件夾)

data_file_directories: 
    - B:/Cassandra/data/var/lib/cassandra/data 

這樣做是不正確的?在數據重新平衡期間,現有節點的3個目錄中的數據是否會流向新節點的1個目錄?

回答

3

內特·麥考爾(當前的Apache Cassandra的項目主席)在這裏回答了類似的問題:How does cassandra split keyspace data when multiple directories are configured?

總之,這應該是罰款。 Cassandra均勻分佈data_file_directories中的條目數據,無論有多少。此外,節點負責的令牌數獨立於此設置,因此您不應該看到任何熱點或不平衡(至少不是由於此)。

話雖這麼說,我將加入以下幾點:

  • 指定多個數據目錄可以幫助,如果他們是不同的物理安裝點。這樣,如果一個磁盤應該填滿或意外失敗,節點仍然可以繼續運行。
  • 如果我上增加一個節點,並保持所有的人都爲長期計劃,我將指定儘可能靠近我可以到原來的節點的新節點的配置。當您負責多個節點和集羣時,這尤其有助於在一個大環境中,而不必記住在需要排除故障時如何以及爲什麼集羣中的某個特定節點不同。
  • 最後一點的例外情況是,如果我決定前進到單個數據目錄。但是,我也有一個計劃來淘汰現有的節點,並將它們替換爲也具有類似配置的節點。

專業提示:如果可以,請嘗試使用Chef或Spinnaker等自動部署工具。這樣一個新節點的配置本質上就是羣集中所有其他節點的「切入點」。

相關問題