Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Hadoop >> mail # user >> java.lang.NoSuchMethodError ThreadSafeClientConnManager


Copy link to this message
-
java.lang.NoSuchMethodError ThreadSafeClientConnManager
Hello,

I am getting the following syslog while running a mapreduce job on my
cluster:

2013-03-19 11:00:37,465 INFO
org.apache.solr.client.solrj.fimpl.HttpClientUtil: Creating new http
client, config:
2013-03-19 11:00:37,477 INFO
org.apache.hadoop.mapred.TaskLogsTruncater: Initializing logs'
truncater with mapRetainSize=-1 and reduceRetainSize=-1
2013-03-19 11:00:37,550 INFO org.apache.hadoop.io.nativeio.NativeIO:
Initialized cache for UID to User mapping with a cache timeout of
14400 seconds.
2013-03-19 11:00:37,551 INFO org.apache.hadoop.io.nativeio.NativeIO:
Got UserName hadoop for UID 8004 from the native
implementation*2013-03-19 11:00:37,554 FATAL
org.apache.hadoop.mapred.Child: Error running child :
java.lang.NoSuchMethodError:
org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager: method
<init>()V not found
at org.apache.solr.client.solrj.impl.HttpClientUtil.createClient(HttpClientUtil.java:103)
at org.apache.solr.client.solrj.impl.CloudSolrServer.<init>(CloudSolrServer.java:83)*
I think the issue is that somewhere I have a wrong version of the
httpclient jar (I need 4.0 or higher but I have a lower version somewhere).
I say this because the zookeeper classpath in syslog shows a library that I
can't find it in my cluster anywhere.

Syslog showed the zookeeper classpath as follows:
*2013-03-19 11:00:22,347 INFO org.apache.zookeeper.ZooKeeper: Client
environment:java.class.path*=/opt/hadoop/bin/../conf:
/usr/java/default/lib/tools.jar:/opt/hadoop/bin/..:/opt/hadoop/bin/../hadoop-core-0.20.203.0.jar:
/opt/hadoop/bin/../lib/aspectjrt-1.6.5.jar:/opt/hadoop/bin/../lib/aspectjtools-1.6.5.jar:
/opt/hadoop/bin/../lib/commons-beanutils-1.7.0.jar:/opt/hadoop/bin/../lib/commons-beanutils-core-1.8.0.jar:
/opt/hadoop/bin/../lib/commons-cli-1.2.jar:/opt/hadoop/bin/../lib/commons-codec-1.4.jar:
/opt/hadoop/bin/../lib/commons-collections-3.2.1.jar:/opt/hadoop/bin/../lib/commons-configuration-1.6.jar:
/opt/hadoop/bin/../lib/commons-daemon-1.0.1.jar:/opt/hadoop/bin/../lib/commons-digester-1.8.jar:
/opt/hadoop/bin/../lib/commons-el-1.0.jar:/opt/hadoop/bin/../lib/*commons-httpclient-3.0.1.jar*:
/opt/hadoop/bin/../lib/commons-lang-2.4.jar:/opt/hadoop/bin/../lib/commons-logging-1.1.1.jar:
/opt/hadoop/bin/../lib/commons-logging-api-1.0.4.jar:/opt/hadoop/bin/../lib/commons-math-2.1.jar:
/opt/hadoop/bin/../lib/commons-net-1.4.1.jar:/opt/hadoop/bin/../lib/core-3.1.1.jar:
/opt/hadoop/bin/../lib/hsqldb-1.8.0.10.jar:/opt/hadoop/bin/../lib/jackson-core-asl-1.0.1.jar:
/opt/hadoop/bin/../lib/jackson-mapper-asl-1.0.1.jar:/opt/hadoop/bin/../lib/jasper-compiler-5.5.12.jar:
/opt/hadoop/bin/../lib/jasper-runtime-5.5.12.jar:/opt/hadoop/bin/../lib/jets3t-0.6.1.jar:
/opt/hadoop/bin/../lib/jetty-6.1.26.jar:/opt/hadoop/bin/../lib/jetty-util-6.1.26.jar:
/opt/hadoop/bin/../lib/jsch-0.1.42.jar:/opt/hadoop/bin/../lib/junit-4.5.jar:/opt/hadoop/bin/../lib/kfs-0.2.2.jar:
/opt/hadoop/bin/../lib/log4j-1.2.15.jar:/opt/hadoop/bin/../lib/mockito-all-1.8.5.jar:/opt/hadoop/bin/../lib/oro-2.0.8.jar:
/opt/hadoop/bin/../lib/servlet-api-2.5-20081211.jar:/opt/hadoop/bin/../lib/slf4j-api-1.4.3.jar:
/opt/hadoop/bin/../lib/slf4j-log4j12-1.4.3.jar:/opt/hadoop/bin/../lib/xmlenc-0.52.jar:
/opt/hadoop/bin/../lib/jsp-2.1/jsp-2.1.jar:/opt/hadoop/bin/../lib/jsp-2.1/jsp-api-2.1.jar:./:/conf:/build/*:
/opt/hadoop-data/mapred/local/taskTracker/MYDIRNAME/jobcache/job_201301171136_1906/jars/classes:
/opt/hadoop-data/mapred/local/taskTracker/MYDIRNAME/jobcache/job_201301171136_1906/jars:
/opt/hadoop-data/mapred/local/taskTracker/MYDIRNAME/jobcache/job_201301171136_1906/attempt_201301171136_1906_m_000000_0/work
but in all the nodes in my cluster we have removed commons-httpclient from
/opt/hadoop/lib and put in httpclient-4.2.3.jar so I am not sure where
commons-httpclient is coming from. See below:

[root@mynode MYDIRNAME]# ls /opt/hadoop/lib
aspectjrt-1.6.5.jar               commons-configuration-1.6.jar
commons-math-2.1.jar         jackson-mapper-asl-1.0.1.jar
jsch-0.1.42.jar        native
aspectjtools-1.6.5.jar            commons-daemon-1.0.1.jar
commons-net-1.4.1.jar        jasper-compiler-5.5.12.jar    jsp-2.1
           oro-2.0.8.jar
commons-beanutils-1.7.0.jar       commons-digester-1.8.jar
core-3.1.1.jar               jasper-runtime-5.5.12.jar
junit-4.5.jar          servlet-api-2.5-20081211.jar
commons-beanutils-core-1.8.0.jar  commons-el-1.0.jar
hsqldb-1.8.0.10.jar          jdiff
kfs-0.2.2.jar          slf4j-api-1.4.3.jar
commons-cli-1.2.jar               commons-lang-2.4.jar
hsqldb-1.8.0.10.LICENSE.txt  jets3t-0.6.1.jar
kfs-0.2.LICENSE.txt    slf4j-log4j12-1.4.3.jar
commons-codec-1.4.jar             commons-logging-1.1.1.jar
*httpclient-4.2.3.jar*         jetty-6.1.26.jar
log4j-1.2.15.jar       xmlenc-0.52.jar
commons-collections-3.2.1.jar     commons-logging-api-1.0.4.jar
jackson-core-asl-1.0.1.jar   jetty-util-6.1.26.jar
mockito-all-1.8.5.jar

Any suggestions? Does anyone know where the Zookeeper is getting the
classpath/library information? Do I need to restart my Zookeeper? Not sure
what the problem is. Any suggestions would be awesome. Thank you.