欢迎关注大数据技术架构与案例微信公众号:过往记忆大数据
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
过往记忆大数据

java.lang.ClassNotFoundException: solr.DataImportHandler

如果你正在按照 《将 MySQL 的全量数据导入到 Apache Solr 中》 文章介绍的步骤来将 MySQL 里面的数据导入到 Solr 中,但是在创建 Core/Collection 的时候出现了以下的异常

2018-08-02 07:56:17.527 INFO  (qtp817348612-15) [   x:mysql2solr] o.a.s.m.r.SolrJmxReporter Closing reporter [org.apache.solr.metrics.reporters.SolrJmxReporter@47d9861c: rootName = null, domain = solr.core.mysql2solr, service url = null, agent id = null] for registry solr.core.mysql2solr / com.codahale.metrics.MetricRegistry@7b867df
2018-08-02 07:56:17.661 ERROR (qtp817348612-15) [   x:mysql2solr] o.a.s.h.RequestHandlerBase org.apache.solr.common.SolrException: Error CREATEing SolrCore 'mysql2solr': Unable to create core [mysql2solr] Caused by: solr.DataImportHandler
        at org.apache.solr.core.CoreContainer.create(CoreContainer.java:1084)
        at org.apache.solr.handler.admin.CoreAdminOperation.lambda$static$0(CoreAdminOperation.java:94)
        at org.apache.solr.handler.admin.CoreAdminOperation.execute(CoreAdminOperation.java:380)
        at org.apache.solr.handler.admin.CoreAdminHandler$CallInfo.call(CoreAdminHandler.java:395)
        at org.apache.solr.handler.admin.CoreAdminHandler.handleRequestBody(CoreAdminHandler.java:180)
        at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
        at org.apache.solr.servlet.HttpSolrCall.handleAdmin(HttpSolrCall.java:734)
        at org.apache.solr.servlet.HttpSolrCall.handleAdminRequest(HttpSolrCall.java:715)
        at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:496)
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:377)
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:323)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.eclipse.jetty.server.Server.handle(Server.java:531)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
        at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:760)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:678)
        at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.solr.common.SolrException: Unable to create core [mysql2solr]
        at org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1156)
        at org.apache.solr.core.CoreContainer.create(CoreContainer.java:1045)
        ... 44 more
Caused by: org.apache.solr.common.SolrException: Error loading class 'solr.DataImportHandler'
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:1012)
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:867)
        at org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1135)
        ... 45 more
Caused by: org.apache.solr.common.SolrException: Error loading class 'solr.DataImportHandler'
        at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:557)
        at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:488)
        at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:790)
        at org.apache.solr.core.PluginBag.createPlugin(PluginBag.java:141)
        at org.apache.solr.core.PluginBag.init(PluginBag.java:277)
        at org.apache.solr.core.RequestHandlers.initHandlersFromConfig(RequestHandlers.java:130)
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:970)
        ... 47 more
Caused by: java.lang.ClassNotFoundException: solr.DataImportHandler
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:541)
        ... 53 more
在 Apache Solr 中使用复制字段(Copying Fields)
如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

这是因为启动 Jetty 的时候缺少了相关依赖包。解决这个问题的办法也很直接,将 $SOLR_HOME/dist 目录下的 solr-dataimporthandler-7.4.0.jar 文件复制到 $SOLR_HOME/server/solr-webapp/webapp/WEB-INF/lib 目录下,然后重启 Solr 即可解决:

$ cp dist/solr-dataimporthandler-7.4.0.jar server/solr-webapp/webapp/WEB-INF/lib/
$ service solr start
本博客文章除特别声明,全部都是原创!
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【java.lang.ClassNotFoundException: solr.DataImportHandler】(https://www.iteblog.com/archives/2403.html)
喜欢 (2)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!