|
|
-
java.lang.NoSuchMethodError ThreadSafeClientConnManagerAji Janis 2013-03-19, 16:12
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. |