[ 
https://issues.apache.org/jira/browse/FLUME-1992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13636990#comment-13636990
 ] 

Edward Sargisson commented on FLUME-1992:
-----------------------------------------

As indicated in the description, when elasticsearch makes a major release it 
ends to break compatibility with previously installed clusters.

I know that 0.19 and 0.20 could not talk together. I have just tested having a 
0.90RC2 client in the elasticsearchsink talking to a 0.20 cluster and it fails 
too.

Thus I think that users should choose which elasticsearch jar they want to use 
and place it in the lib directory. Therefore option 2 above should be taken and 
the documentation updated.
                
> ElasticSearch dependency is marked optional
> -------------------------------------------
>
>                 Key: FLUME-1992
>                 URL: https://issues.apache.org/jira/browse/FLUME-1992
>             Project: Flume
>          Issue Type: Improvement
>          Components: Sinks+Sources
>    Affects Versions: v1.4.0
>            Reporter: Harsh J
>            Priority: Minor
>
> FLUME-1371 added an ElasticSearch module but the dependency added in it for 
> org.elasticsearch classes is marked {{<optional>true</optional>}}.
> This means it doesn't get generated into the builds Flume would ship and the 
> user guide will not work unless a user manually places their version of 
> ElasticSearch jars on the classpath. They will get the error:
> {code}
> java.lang.NoClassDefFoundError: 
> org/elasticsearch/common/transport/TransportAddress
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Class.java:188)
>         at 
> org.apache.flume.sink.DefaultSinkFactory.getClass(DefaultSinkFactory.java:67)
>         at 
> org.apache.flume.sink.DefaultSinkFactory.create(DefaultSinkFactory.java:41)
>         at 
> org.apache.flume.node.AbstractConfigurationProvider.loadSinks(AbstractConfigurationProvider.java:415)
>         at 
> org.apache.flume.node.AbstractConfigurationProvider.getConfiguration(AbstractConfigurationProvider.java:103)
>         at 
> org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:140)
>         at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>         at 
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
>         at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:165)
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:679)
> Caused by: java.lang.ClassNotFoundException: 
> org.elasticsearch.common.transport.TransportAddress
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
>         ... 15 more
> {code}
> Two ways to address this; either we:
> # Mark dependency as non-optional, supply a bundled elasticsearch jar 
> (version decision could be a problem I imagine, if their releases break 
> compatibility often)
> # Update the user guide to instruct the user to place the jar onto flume's 
> classpath in proper manner, before following the remaining of the guide.
> Problem of the ClassNotFound originally reported by user j0sh_X over FreeNode 
> IRC.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to