即使其中一个节点关闭,Cassandra system.hints表也是空的

时间:2016-02-10 20:41:20

标签: cassandra cqlsh

我正在从academy.datastax.com学习Cassandra。我正在本地计算机上尝试复制和一致性演示。 RF = 3且一致性= 1。

当我的Node3关闭并且我使用update命令更新我的表时,SYSTEM.HINTS表应该存储node3的提示但它总是为空。

我是否需要对提示进行任何配置更改才能正常工作或默认设置正常?

control.RadYes.IsChecked = true;

3 个答案:

答案 0 :(得分:4)

您是否使用完全相同版本的Cassandra来创建群集?从版本3+开始,提示存储在协调器的本地文件系统中。我问这个是因为在Datastax演示期间我发生了完全相同的事情(我使用的是3.0.3而不是2.1.5)我重复了这些步骤但是使用了2.1.5以及表格中的提示正如预期的那样。

答案 1 :(得分:1)

遇到同样的问题时遇到过这篇文章。最新版本的cassandra不会在system.hints表中存储提示。我正在使用cassandra 3.9,提示存储在文件系统中。

在cassandra.yaml文件中配置。

# Directory where Cassandra should store hints.
# If not set, the default directory is $CASSANDRA_HOME/data/hints.
# hints_directory: /var/lib/cassandra/hints

在我的情况下,我使用的是ccm,我能够在

找到提示
${user_home}/.ccm/mycluster/node1/hints 

其中mycluster是我的群集名称,node1是我的节点名称。希望这有助于某人。

答案 2 :(得分:0)

为了理解为什么没有写提示,你需要很好地掌握Cassandra replicates data的方法。

  

复制因子为2表示每行两个副本,每行一个   copy位于不同的节点上。所有复制品同样重要;那里   不是主要副本或主副本。

如果群集中的复制因子为3个和5个节点,则可能会丢失另一个节点,但仍未存储提示,因为您的数据复制策略仍然有效。尝试杀死另外两个节点,然后检查提示表。