我有一個3節點的羣集,複製因子爲2,但數據在所有3個節點上都得到了複製。這是我創造我的密鑰空間:在3節點Cassandra集羣中將複製因子設置爲2;但是仍然有數據在插入時被複制到所有3個節點
CREATE KEYSPACE IF NOT EXISTS具有複製DEMO = { '類': 'SimpleStrategy', 'replication_factor':2};
這裏缺少什麼?
我有一個3節點的羣集,複製因子爲2,但數據在所有3個節點上都得到了複製。這是我創造我的密鑰空間:在3節點Cassandra集羣中將複製因子設置爲2;但是仍然有數據在插入時被複制到所有3個節點
CREATE KEYSPACE IF NOT EXISTS具有複製DEMO = { '類': 'SimpleStrategy', 'replication_factor':2};
這裏缺少什麼?
數據正在被分佈超過節點,並且每個節點保持個數據:其自己的一塊有關其指定的分區的數據,和屬於它的相鄰節點的數據。
Cassandra根據行的主鍵分配數據。任何表格通常分佈在所有機器上,當你插入一行時,它只被插在「兩臺機器」上(這兩臺機器不是隨機的,可用nodetool
計算)
如果你想了解更多關於如何通過主鍵分配數據,查看分區器。 Cassandra Partitioners
嘗試對錶中任何具有該密鑰空間的分區鍵執行getendpoints
。你會得到保存該分區的節點列表。在這種情況下,你應該只輸出2個節點。
$ nodetool getendpoints <keyspace> <table> key
你怎麼知道它「在所有3個節點上覆制」? – Rocherlee