我正在尝试使用Cassandra触发器,但我无法让Cassandra加载它们。我已经从here和here构建了jar文件,并将它们放在C:\Program Files\DataStax-DDC\apache-cassandra\conf\triggers
下。我重新启动了DataStax_DDC_Server
服务(在Windows上)并重新打开了CQLSH命令行,但尝试在create trigger
命令中使用触发器类只给我:
ConfigurationException: <ErrorMessage code=2300 [Query invalid because of configuration issue] message="Trigger class 'org.apache.cassandra.triggers.InvertedIndex' doesn't exist">
我检查了jar文件,它们包含了类文件。
我在cassandra的日志文件中找到的唯一的东西是Trigger directory doesn't exist, please create it and try again.
但我不知道这是否相关。
编辑:在显示here的最后一行之后,我编辑了cassandra.bat
文件。现在,如果我停止DataStax_DDC_Server
服务并直接运行bat文件,则create trigger
命令会成功。然而,该服务似乎独立于此bat文件。现在的问题是如何将相同的配置应用于服务?
答案 0 :(得分:0)
创造性地搜索谷歌后,我找到了解决方案。如上所述[{3}},您需要显式设置cassandra.triggers_dir
变量,但是如果here解释了服务要提取它,则必须在注册表中对其进行配置。所以答案是更新注册表项
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\DataStax_CDC_Server\Parameters\Java\Options
并添加行
-Dcassandra.triggers_dir=C:\Program Files\DataStax-DDC\apache-cassandra\conf\triggers
请注意,路径不应包含在引号中,否则将无效。 不要忘记重启服务。
答案 1 :(得分:-1)