hadoop-mapreduce-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aji Janis <aji1...@gmail.com>
Subject Re: java.lang.NoSuchMethodError ThreadSafeClientConnManager
Date Tue, 19 Mar 2013 16:25:27 GMT
So I tried the replace commons-httpclient.jar with httpclient.jar on all
nodes method and couldn't find a single node that had commons-httpclient
which is why its very confusing that the zookeeper still shows that on the
classpath.. like its cached somewhere? If it is, how do I flush it?

But I like your option of:

I'd instead generally recommend passing the dependencies you need as
part of your job along with it via -libjars and such, and setting the
MR option to have it take precedence over the hadoop-provided jars of
the same kind.

... How do I do this?

Thanks Harsh.


On Tue, Mar 19, 2013 at 12:19 PM, Harsh J <harsh@cloudera.com> wrote:

> ZK is showing its runtime JVM classpath (from the JVM that invoked a
> ZK client), and not the ZK server's classpath. The path reported is
> the below, which is part of /opt/hadoop/lib itself:
>
> /opt/hadoop/bin/../lib/commons-httpclient-3.0.1.jar
>
> Check for this jar's existence on all nodes and replace them with your
> required version perhaps? I'm not sure if it will work but that seems
> to be what you wish to try.
>
> I'd instead generally recommend passing the dependencies you need as
> part of your job along with it via -libjars and such, and setting the
> MR option to have it take precedence over the hadoop-provided jars of
> the same kind.
>
> On Tue, Mar 19, 2013 at 9:42 PM, Aji Janis <aji1705@gmail.com> wrote:
> > 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.
> >
> >
>
>
>
> --
> Harsh J
>

Mime
View raw message