我跟着警察走http://stormcrawler.net/getting-started/ 在中使用storm命令运行拓扑时生成拓扑的jar文件的指南 readme
文件,在执行fetcherbolt时出现以下错误。我在hortonworks集群中安装了storm 1.1.0.2.6.4.0-91。无论是本地模式还是分布式模式,我都会得到相同的异常。我有以下例外
java.lang.nosuchmethoderror:org.apache.commons.logging.impl.logfactoryimpl.handlethrowable(ljava/lang/throwable;)v位于org.apache.commons.logging.impl.logfactoryimpl.newinstance(logfactoryimpl。java:568)在org.apache.commons.logging.impl.logfactoryimpl.getinstance(logfactoryimpl。java:292)在org.apache.commons.logging.impl.logfactoryimpl.getinstance(logfactoryimpl。java:269)在org.apache.commons.logging.logfactory.getlog(logfactory。java:685)在org.apache.http.conn.ssl.abstractverifier.(抽象验证器。java:61)在org.apache.http.conn.ssl.allowlHostNameVerifier。java:44)在org.apache.http.conn.ssl.allowlHostNameVerifier。java:46)在org.apache.http.conn.ssl.sslconnectionsocketfactory上。java:146)在org.apache.http.impl.conn.poolighttpclientconnectionmanager.getdefaultregistry(poolighttpclientconnectionmanager。java:115)在org.apache.http.impl.conn.poolighttpclientconnectionmanager.(poolighttpclientconnectionmanager。java:122)在com.digitalpebble.stormclawler.protocol.httpclient.httpprotocol.(httpprotocol。java:76)在java.lang.class.forname(类)中的java.lang.class.forname0(本机方法)。java:264)在com.digitalpebble.stormclawler.protocol.protocolfactory.(protocolfactory。java:60)在com.digitalpebble.stormclawler.bolt.fetcherbolt.prepare(fetcherbolt。java:738)在org.apache.storm.daemon.executor$fn\uu9635$fn\uu9648.invoke(executor。clj:794)在org.apache.storm.util$async\u loop$fn\u 557.invoke(util。clj:482)在clojure.lang.afn.run(afn。java:22)在java.lang.thread.run(线程。java:748)
1条答案
按热度按时间hs1ihplo1#
这可能是因为从httpclient库继承的commons日志记录版本与apachestorm的hortonworks版本放在类路径上的版本之间存在冲突。
您可以通过设置
在crawler-conf.yaml文件中。注意,这并不能保证对commons日志的调用不会在其他地方发生。理想情况下,您希望解决依赖性问题,例如确保hortonworks使用与stormcrawler所需版本相同的版本。我们只支持storm的apache发行版。