创建一个新的Cassandra并进行简单的插入会导致意外警告:
SharedPool-Worker-1]警告o.apache.cassandra.utils.FBUtilities - 触发器目录不存在,请创建它并重试。
检查它的接收源Cassandra期望触发器目录(默认名称'触发器')存在。
由于我每次都开始一个新的Cassandra,我想知道如何建议Cassandra创建触发器目录本身。我不想人为地摸索它。
[update] Cassandra使用默认的main方法,并在用户空间中启动。因为在cassandra.yaml定义期间创建了缓存,数据和第三个目录,我想知道在哪里指定触发器目录或者如何创建它。
@close screamers 在日志中有一个令人讨厌的警告,毕竟不应该存在,我认为是一个bug,所以请允许这个问题.... (没有冒犯,只是简单的stackoverflow乞讨)
答案 0 :(得分:4)
当我从FBUtilities.cassandraTriggerDir方法的代码中学习时,属性" cassandra.triggers_dir"在尝试默认触发目录"触发"之前读取。通过将属性设置为正确的目录(创建后)解决了问题。
问题的主要原因是,首先,触发器目录根本不存在,其次,Cassandra目录不是类路径的一部分。所以Cassandra无法正确检测触发器目录。
总而言之,这个问题缺少一个cassandra.yaml条目。
PS:感谢Bryce的帮助!答案 1 :(得分:2)
您是否在要插入的表格或模式中定义了触发器?或者你是否从2.0之前的版本升级了Cassandra?
在任何情况下,2.1的/triggers
目录取决于您的安装类型。
{install_location}/conf/triggers
/etc/cassandra/triggers