避免Cassandra 2.1警告触发器目录不存在

时间:2015-04-30 08:41:34

标签: java cassandra

创建一个新的Cassandra并进行简单的插入会导致意外警告:

  

SharedPool-Worker-1]警告o.apache.cassandra.utils.FBUtilities - 触发器目录不存在,请创建它并重试。

检查它的接收源Cassandra期望触发器目录(默认名称'触发器')存在。

由于我每次都开始一个新的Cassandra,我想知道如何建议Cassandra创建触发器目录本身。我不想人为地摸索它。

[update] Cassandra使用默认的main方法,并在用户空间中启动。因为在cassandra.yaml定义期间创建了缓存,数据和第三个目录,我想知道在哪里指定触发器目录或者如何创建它。

@close screamers 在日志中有一个令人讨厌的警告,毕竟不应该存在,我认为是一个bug,所以请允许这个问题.... (没有冒犯,只是简单的stackoverflow乞讨)

2 个答案:

答案 0 :(得分:4)

当我从FBUtilities.cassandraTriggerDir方法的代码中学习时,属性" cassandra.triggers_dir"在尝试默认触发目录"触发"之前读取。通过将属性设置为正确的目录(创建后)解决了问题。

问题的主要原因是,首先,触发器目录根本不存在,其次,Cassandra目录不是类路径的一部分。所以Cassandra无法正确检测触发器目录。

总而言之,这个问题缺少一个cassandra.yaml条目。

PS:感谢Bryce的帮助!

答案 1 :(得分:2)

您是否在要插入的表格或模式中定义了触发器?或者你是否从2.0之前的版本升级了Cassandra?

在任何情况下,2.1的/triggers目录取决于您的安装类型。

  • 对于tarball安装,它应该是:{install_location}/conf/triggers
  • 对于打包安装,应该是:/etc/cassandra/triggers