没有找到ElasticSearch + Twitter河流类 [英] ElasticSearch + Twitter river class not found

查看:89
本文介绍了没有找到ElasticSearch + Twitter河流类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在弹性搜索上安装twitter river插件。我以前在我的Mac上完成了任何问题,但这次我试图安装在一个Linux服务器上,我不断得到这个类没有找到异常。当我使用curl -XPUT命令时出现异常,如 https: //github.com/elasticsearch/elasticsearch-river-twitter/blob/master/README.md



这是我得到的例外: -

  [2013-11-25 15:12:00,116] [WARN] [河流] [Fasaud]未能创造河流[twitter] [ my_twitter_river2] 
org.elasticsearch.common.settings.NoClassSettingsException:无法在org.elasticsearch.river.RiverModule.loadTypeModule(RiverModule.java:87)中加载值为[twitter]
的类
在org.elasticsearch.river.RiverModule.spawnModules(RiverModule.java:58)
在org.elasticsearch.common.inject.ModulesBuilder.add(ModulesBuilder.java:44)
在org.elasticsearch.river .RiversService.createRiver(RiversService.java:135)
在org.elasticsearch.river.RiversService $ ApplyRivers $ 2.onResponse(RiversService.java: 271)
在org.elasticsearch.river.RiversService $ ApplyRivers $ 2.onResponse(RiversService.java:265)
在org.elasticsearch.action.support.TransportAction $ ThreadedActionListener $ 1.run(TransportAction.java: 93)
在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)
在java.lang.Thread.run(Thread.java:724)
引起的:java.lang.ClassNotFoundException:twitter
在java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)
在java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)
在java.security.AccessController.doPrivileged(本机方法)
在java.net.URLClassLoader.findClass(URLClassLoader。 java:354)
在java.lang.ClassLoader.loadClass(ClassLoader.java:424)
在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)
在java .lang.ClassLoader.loadClass(ClassLoader.java:357)
在org.elasticsearch.river.RiverModule.loadTypeMod ule(RiverModule.java:73)
... 9更多

我已经尝试重新启动,安装很多次,不能让它工作无论如何。我还可以看到插件目录中存在的jar文件包含类twitter,但是由于某些原因,它们无法弹性搜索执行。

解决方案

这是一个配置和安装问题。



步骤:


  1. 运行 ps aux | grep elasticsearch (在linux上),这将告诉哪个可执行文件在该机器上运行(查找一行如下所示:(-Des.default.path.home = / usr / share / elasticsearch)或类似的东西。 p>


  2. 如果几个弹性搜索实例运行,请将其全部删除,然后启动您关心的一个。


  3. 确保只有一个弹性搜索的实例正在运行(如果这是意图),并且从上面的步骤1进入主目录路径。


  4. 确保该插件安装在弹性搜索/插件目录中的此目录中。


重新启动弹性搜索。 $ b

I am trying to install twitter river plugin on elastic search. I have done it before on my mac without any issues, but this time I am trying to install on a Linux server and I keep getting this class not found exception. The exception comes when I use curl -XPUT command as shown in https://github.com/elasticsearch/elasticsearch-river-twitter/blob/master/README.md

Here's the exception I get :-

[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

I have tried restarting, installing many many times and can't get it to work anyhow. I can also see that the jar files present in the plugin directories contain the class twitter but for some reason they're not available to elasticsearch execution.

解决方案

This is a configuration and install issue.

Steps:

  1. Check to see where elasticsearch is installed by running ps aux|grep elasticsearch (on linux) and that will tell which executable is running on that machine (look for a line that looks like this: (-Des.default.path.home=/usr/share/elasticsearch) or something similar.

  2. If several elasticsearch instances running, kill them all and start the one you care about.

  3. Ensure that only one instance of elasticsearch is running (if that is the intent) and, from step one above, go to the home path directory.

  4. Ensure that the plugin is installed in this directory in elasticsearch/plugins dir.

Restart elasticsearch.

这篇关于没有找到ElasticSearch + Twitter河流类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆