cassandra 3.5无法加载触发器类

时间:2016-06-01 14:55:27

标签: java triggers cassandra cql

我正在尝试使用Cassandra触发器,但我无法让Cassandra加载它们。我已经从herehere构建了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文件。现在的问题是如何将相同的配置应用于服务?

2 个答案:

答案 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)

以上解决方案适用于window。在窗口中很难找到注册表选项。因此要找到注册表选项,请进入“开始”菜单并键入“ regedit”,它将打开注册表窗口,然后您就可以进行上述设置了。

enter image description here