未找到ElasticSearch + Twitter河类

时间:2013-11-25 14:54:08

标签: elasticsearch

我正在尝试在弹性搜索上安装twitter river插件。我之前在我的Mac上做过没有任何问题,但这次我试图在Linux服务器上安装,我一直得到这个类没有找到异常。当我使用https://github.com/elasticsearch/elasticsearch-river-twitter/blob/master/README.md

中所示的curl -XPUT命令时会出现异常

以下是我得到的例外情况: -

[2013-11-25 15:12:00,116][WARN ][river                    ] [Fasaud] failed to create                 river [twitter][my_twitter_river2]
org.elasticsearch.common.settings.NoClassSettingsException: Failed to load class with value [twitter]
    at org.elasticsearch.river.RiverModule.loadTypeModule(RiverModule.java:87)
    at org.elasticsearch.river.RiverModule.spawnModules(RiverModule.java:58)
at org.elasticsearch.common.inject.ModulesBuilder.add(ModulesBuilder.java:44)
at org.elasticsearch.river.RiversService.createRiver(RiversService.java:135)
at org.elasticsearch.river.RiversService$ApplyRivers$2.onResponse(RiversService.java:271)
at org.elasticsearch.river.RiversService$ApplyRivers$2.onResponse(RiversService.java:265)
at org.elasticsearch.action.support.TransportAction$ThreadedActionListener$1.run(TransportAction.java:93)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.ClassNotFoundException: twitter
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.elasticsearch.river.RiverModule.loadTypeModule(RiverModule.java:73)
... 9 more

我尝试重启,安装了很多次,无论如何也无法让它工作。我还可以看到插件目录中的jar文件包含类twitter,但由于某种原因,它们不能用于elasticsearch执行。

2 个答案:

答案 0 :(得分:2)

这是配置和安装问题。

步骤:

  1. 通过运行ps aux|grep elasticsearch(在Linux上)来检查弹性搜索的安装位置,这将告诉该计算机上运行的是哪个可执行文件(查找如下所示的行:( - Des.default .path.home = / usr / share / elasticsearch)或类似的东西。

  2. 如果有几个弹性搜索实例正在运行,请将它们全部删除并启动您关心的那个。

  3. 确保只有一个elasticsearch实例正在运行(如果这是意图),并且从上面的第一步开始,转到主路径目录。

  4. 确保插件安装在elasticsearch / plugins目录中的此目录中。

  5. 重新启动elasticsearch。

答案 1 :(得分:0)

确认您的类路径包含带有内容的文本文件es-plugin.properties

插件= your.package.YourRiverPlugin

缺少这样的属性文件显示几乎相同的错误。

有关详细信息,请参阅http://blog.trifork.com/2013/01/10/how-to-write-an-elasticsearch-river-plugin/