引起:java.lang.NoClassDefFoundError:无法初始化类org.elasticsearch.common.lucene.Lucene

时间:2016-06-15 10:14:18

标签: java maven elasticsearch lucene

在通过hadoop作业在ES上写作时,它会冻结日志,因为:引起: java.lang.NoClassDefFoundError :无法初始化类org.elasticsearch.common.lucene.Lucene,可能是什么原因?

  

RemoteTransportException [[无法反序列化类型[org.elasticsearch.action.admin.cluster.node.liveness.LivenessResponse]的响应]];嵌套:TransportSerializationException [无法反序列化类型[org.elasticsearch.action.admin.cluster.node.liveness.LivenessResponse]]的响应;嵌套:NoClassDefFoundError [无法初始化类org.elasticsearch.common.lucene.Lucene];   引发者:TransportSerializationException [无法反序列化类型[org.elasticsearch.action.admin.cluster.node.liveness.LivenessResponse]]的响应;嵌套:NoClassDefFoundError [无法初始化类org.elasticsearch.common.lucene.Lucene];       at org.elasticsearch.transport.netty.MessageChannelHandler.handleResponse(MessageChannelHandler.java:180)       at org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:138)       在org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)       在org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)       在org.jboss.netty.channel.DefaultChannelPipeline $ DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:787)       在org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)       在org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)       在org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)       在org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)       在org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)       在org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)       在org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:555)       在org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)       在org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)       在org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)       在org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:107)       在org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)       在org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88)       在org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)       在org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)       在org.jboss.netty.util.internal.DeadLockProofWorker $ 1.run(DeadLockProofWorker.java:42)       在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)       at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)       在java.lang.Thread.run(Thread.java:745)   引起:java.lang.NoClassDefFoundError:无法初始化类org.elasticsearch.common.lucene.Lucene

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我通过删除log4j和slf4j依赖项来解决它。 似乎弹性搜索默认尝试加载log4j记录器,并且会产生一些冲突。

答案 1 :(得分:0)

问题是由于类路径中的elasticsearch jar文件存在冲突。我的elasticsearch是2.3.3,它在我的项目pom.xml文件中需要相同版本的jar文件,该文件之前是2.3.2版本的弹性搜索。