Re: [SPARK-3638 ] java.lang.NoSuchMethodError: org.apache.http.impl.conn.DefaultClientConnectionOperator.

2015-03-16 Thread Ted Yu
See this thread: http://search-hadoop.com/m/JW1q5Kk8Zs1

You can find Spark built against multiple hadoop releases in:
http://people.apache.org/~pwendell/spark-1.3.0-rc3/

FYI

On Mon, Mar 16, 2015 at 11:36 AM, Shuai Zheng szheng.c...@gmail.com wrote:

 And it is an NoSuchMethodError, not a classnofound error



 And default I think the spark is only compile against Hadoop 2.2?



 For this issue itself, I just check the latest spark (1.3.0), its version
 can work (because it package with a newer version of httpclient, I can see
 the method is there, although still don’t know the exact version), but this
 doesn’t really solve the whole problem, it is very unclear that what
 version of third party library is used by Spark even there is someway to
 figure it out, still a horrible decision to do that?





 *From:* Ted Yu [mailto:yuzhih...@gmail.com]
 *Sent:* Monday, March 16, 2015 1:06 PM
 *To:* Shuai Zheng
 *Cc:* user
 *Subject:* Re: [SPARK-3638 ] java.lang.NoSuchMethodError:
 org.apache.http.impl.conn.DefaultClientConnectionOperator.



 From my local maven repo:



 $ jar tvf
 ~/.m2/repository/org/apache/httpcomponents/httpclient/4.2.5/httpclient-4.2.5.jar
 | grep SchemeRegistry

   1373 Fri Apr 19 18:19:36 PDT 2013
 org/apache/http/impl/conn/SchemeRegistryFactory.class

   2954 Fri Apr 19 18:19:36 PDT 2013
 org/apache/http/conn/scheme/SchemeRegistry.class

   2936 Fri Apr 19 18:19:36 PDT 2013
 org/apache/http/auth/AuthSchemeRegistry.class



 If you run mvn dependency:tree, you would see something similar to the
 following:



 [INFO] |  +- org.apache.hadoop:hadoop-client:jar:2.6.0:compile

 [INFO] |  |  +- org.apache.hadoop:hadoop-common:jar:2.6.0:compile

 [INFO] |  |  |  +- commons-cli:commons-cli:jar:1.2:compile

 [INFO] |  |  |  +- xmlenc:xmlenc:jar:0.52:compile

 [INFO] |  |  |  +- commons-io:commons-io:jar:2.4:compile

 [INFO] |  |  |  +-
 commons-collections:commons-collections:jar:3.2.1:compile

 [INFO] |  |  |  +- commons-lang:commons-lang:jar:2.6:compile

 [INFO] |  |  |  +-
 commons-configuration:commons-configuration:jar:1.6:compile

 [INFO] |  |  |  |  +- commons-digester:commons-digester:jar:1.8:compile

 [INFO] |  |  |  |  |  \-
 commons-beanutils:commons-beanutils:jar:1.7.0:compile

 [INFO] |  |  |  |  \-
 commons-beanutils:commons-beanutils-core:jar:1.8.0:compile

 [INFO] |  |  |  +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile

 [INFO] |  |  |  +-
 org.codehaus.jackson:jackson-mapper-asl:jar:1.8.8:compile

 [INFO] |  |  |  +- org.apache.avro:avro:jar:1.7.6:compile

 [INFO] |  |  |  +- com.google.protobuf:protobuf-java:jar:2.5.0:compile

 [INFO] |  |  |  +- com.google.code.gson:gson:jar:2.2.4:compile

 [INFO] |  |  |  +- org.apache.hadoop:hadoop-auth:jar:2.6.0:compile

 [INFO] |  |  |  |  +-
 org.apache.httpcomponents:httpclient:jar:4.2.5:compile



 Cheers



 On Mon, Mar 16, 2015 at 9:38 AM, Shuai Zheng szheng.c...@gmail.com
 wrote:

 Hi All,



 I am running Spark 1.2.1 and AWS SDK. To make sure AWS compatible on the
 httpclient 4.2 (which I assume spark use?), I have already downgrade to the
 version 1.9.0



 But even that, I still got an error:



 Exception in thread main java.lang.NoSuchMethodError:
 org.apache.http.impl.conn.DefaultClientConnectionOperator.init(Lorg/apache/http/conn/scheme/SchemeRegistry;Lorg/apache/http/conn/DnsResolver;)V

 at
 org.apache.http.impl.conn.PoolingClientConnectionManager.createConnectionOperator(PoolingClientConnectionManager.java:140)

 at
 org.apache.http.impl.conn.PoolingClientConnectionManager.init(PoolingClientConnectionManager.java:114)

 at
 org.apache.http.impl.conn.PoolingClientConnectionManager.init(PoolingClientConnectionManager.java:99)

 at
 com.amazonaws.http.ConnectionManagerFactory.createPoolingClientConnManager(ConnectionManagerFactory.java:29)

 at
 com.amazonaws.http.HttpClientFactory.createHttpClient(HttpClientFactory.java:102)

 at
 com.amazonaws.http.AmazonHttpClient.init(AmazonHttpClient.java:190)

 at
 com.amazonaws.AmazonWebServiceClient.init(AmazonWebServiceClient.java:119)

 at
 com.amazonaws.services.s3.AmazonS3Client.init(AmazonS3Client.java:410)

 at
 com.amazonaws.services.s3.AmazonS3Client.init(AmazonS3Client.java:392)

 at
 com.amazonaws.services.s3.AmazonS3Client.init(AmazonS3Client.java:376)



 When I search the maillist, it looks the same issue as:

 https://github.com/apache/spark/pull/2535


 http://stackoverflow.com/questions/24788949/nosuchmethoderror-while-running-aws-s3-client-on-spark-while-javap-shows-otherwi



 But I don’t understand the solution mention here? The issue is caused by
 an pre-package  DefaultClientConnectionOperator in the spark all-in-one
 jar file which doesn’t have the that method.



 I have some questions here:



 How can we find out which exact version when spark try to pre-package
 everything (this really very painful). and how can we override it?



 I have tried:



 *val* conf

Re: [SPARK-3638 ] java.lang.NoSuchMethodError: org.apache.http.impl.conn.DefaultClientConnectionOperator.

2015-03-16 Thread Ted Yu
From my local maven repo:

$ jar tvf
~/.m2/repository/org/apache/httpcomponents/httpclient/4.2.5/httpclient-4.2.5.jar
| grep SchemeRegistry
  1373 Fri Apr 19 18:19:36 PDT 2013
org/apache/http/impl/conn/SchemeRegistryFactory.class
  2954 Fri Apr 19 18:19:36 PDT 2013
org/apache/http/conn/scheme/SchemeRegistry.class
  2936 Fri Apr 19 18:19:36 PDT 2013
org/apache/http/auth/AuthSchemeRegistry.class

If you run mvn dependency:tree, you would see something similar to the
following:

[INFO] |  +- org.apache.hadoop:hadoop-client:jar:2.6.0:compile
[INFO] |  |  +- org.apache.hadoop:hadoop-common:jar:2.6.0:compile
[INFO] |  |  |  +- commons-cli:commons-cli:jar:1.2:compile
[INFO] |  |  |  +- xmlenc:xmlenc:jar:0.52:compile
[INFO] |  |  |  +- commons-io:commons-io:jar:2.4:compile
[INFO] |  |  |  +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] |  |  |  +- commons-lang:commons-lang:jar:2.6:compile
[INFO] |  |  |  +-
commons-configuration:commons-configuration:jar:1.6:compile
[INFO] |  |  |  |  +- commons-digester:commons-digester:jar:1.8:compile
[INFO] |  |  |  |  |  \-
commons-beanutils:commons-beanutils:jar:1.7.0:compile
[INFO] |  |  |  |  \-
commons-beanutils:commons-beanutils-core:jar:1.8.0:compile
[INFO] |  |  |  +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
[INFO] |  |  |  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.8.8:compile
[INFO] |  |  |  +- org.apache.avro:avro:jar:1.7.6:compile
[INFO] |  |  |  +- com.google.protobuf:protobuf-java:jar:2.5.0:compile
[INFO] |  |  |  +- com.google.code.gson:gson:jar:2.2.4:compile
[INFO] |  |  |  +- org.apache.hadoop:hadoop-auth:jar:2.6.0:compile
[INFO] |  |  |  |  +- org.apache.httpcomponents:httpclient:jar:4.2.5:compile

Cheers

On Mon, Mar 16, 2015 at 9:38 AM, Shuai Zheng szheng.c...@gmail.com wrote:

 Hi All,



 I am running Spark 1.2.1 and AWS SDK. To make sure AWS compatible on the
 httpclient 4.2 (which I assume spark use?), I have already downgrade to the
 version 1.9.0



 But even that, I still got an error:



 Exception in thread main java.lang.NoSuchMethodError:
 org.apache.http.impl.conn.DefaultClientConnectionOperator.init(Lorg/apache/http/conn/scheme/SchemeRegistry;Lorg/apache/http/conn/DnsResolver;)V

 at
 org.apache.http.impl.conn.PoolingClientConnectionManager.createConnectionOperator(PoolingClientConnectionManager.java:140)

 at
 org.apache.http.impl.conn.PoolingClientConnectionManager.init(PoolingClientConnectionManager.java:114)

 at
 org.apache.http.impl.conn.PoolingClientConnectionManager.init(PoolingClientConnectionManager.java:99)

 at
 com.amazonaws.http.ConnectionManagerFactory.createPoolingClientConnManager(ConnectionManagerFactory.java:29)

 at
 com.amazonaws.http.HttpClientFactory.createHttpClient(HttpClientFactory.java:102)

 at
 com.amazonaws.http.AmazonHttpClient.init(AmazonHttpClient.java:190)

 at
 com.amazonaws.AmazonWebServiceClient.init(AmazonWebServiceClient.java:119)

 at
 com.amazonaws.services.s3.AmazonS3Client.init(AmazonS3Client.java:410)

 at
 com.amazonaws.services.s3.AmazonS3Client.init(AmazonS3Client.java:392)

 at
 com.amazonaws.services.s3.AmazonS3Client.init(AmazonS3Client.java:376)



 When I search the maillist, it looks the same issue as:

 https://github.com/apache/spark/pull/2535


 http://stackoverflow.com/questions/24788949/nosuchmethoderror-while-running-aws-s3-client-on-spark-while-javap-shows-otherwi



 But I don’t understand the solution mention here? The issue is caused by
 an pre-package  DefaultClientConnectionOperator in the spark all-in-one
 jar file which doesn’t have the that method.



 I have some questions here:



 How can we find out which exact version when spark try to pre-package
 everything (this really very painful). and how can we override it?



 I have tried:



 *val* conf = *new* SparkConf()

   .set(spark.files.userClassPathFirst, true)// For non Yarn APP
 before spark 1.3

   .set(spark.executor.userClassPathFirst, true)// For spark 1.3.0

 But it doesn’t work



 This really create a lot of issues to me (especially we don’t know what
 version is used by Spark to package its own jar, we need to try out). Even
 maven doesn’t give enough information because httpclient is not under the
 maven dependency (even indirect dependency, after I use tools to resolved
 the whole dependency tree).



 Regards,



 Shuai



RE: [SPARK-3638 ] java.lang.NoSuchMethodError: org.apache.http.impl.conn.DefaultClientConnectionOperator.

2015-03-16 Thread Shuai Zheng
And it is an NoSuchMethodError, not a classnofound error

 

And default I think the spark is only compile against Hadoop 2.2? 

 

For this issue itself, I just check the latest spark (1.3.0), its version can 
work (because it package with a newer version of httpclient, I can see the 
method is there, although still don’t know the exact version), but this doesn’t 
really solve the whole problem, it is very unclear that what version of third 
party library is used by Spark even there is someway to figure it out, still a 
horrible decision to do that?

 

 

From: Ted Yu [mailto:yuzhih...@gmail.com] 
Sent: Monday, March 16, 2015 1:06 PM
To: Shuai Zheng
Cc: user
Subject: Re: [SPARK-3638 ] java.lang.NoSuchMethodError: 
org.apache.http.impl.conn.DefaultClientConnectionOperator.

 

From my local maven repo:

 

$ jar tvf 
~/.m2/repository/org/apache/httpcomponents/httpclient/4.2.5/httpclient-4.2.5.jar
 | grep SchemeRegistry

  1373 Fri Apr 19 18:19:36 PDT 2013 
org/apache/http/impl/conn/SchemeRegistryFactory.class

  2954 Fri Apr 19 18:19:36 PDT 2013 
org/apache/http/conn/scheme/SchemeRegistry.class

  2936 Fri Apr 19 18:19:36 PDT 2013 
org/apache/http/auth/AuthSchemeRegistry.class

 

If you run mvn dependency:tree, you would see something similar to the 
following:

 

[INFO] |  +- org.apache.hadoop:hadoop-client:jar:2.6.0:compile

[INFO] |  |  +- org.apache.hadoop:hadoop-common:jar:2.6.0:compile

[INFO] |  |  |  +- commons-cli:commons-cli:jar:1.2:compile

[INFO] |  |  |  +- xmlenc:xmlenc:jar:0.52:compile

[INFO] |  |  |  +- commons-io:commons-io:jar:2.4:compile

[INFO] |  |  |  +- commons-collections:commons-collections:jar:3.2.1:compile

[INFO] |  |  |  +- commons-lang:commons-lang:jar:2.6:compile

[INFO] |  |  |  +- commons-configuration:commons-configuration:jar:1.6:compile

[INFO] |  |  |  |  +- commons-digester:commons-digester:jar:1.8:compile

[INFO] |  |  |  |  |  \- commons-beanutils:commons-beanutils:jar:1.7.0:compile

[INFO] |  |  |  |  \- commons-beanutils:commons-beanutils-core:jar:1.8.0:compile

[INFO] |  |  |  +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile

[INFO] |  |  |  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.8.8:compile

[INFO] |  |  |  +- org.apache.avro:avro:jar:1.7.6:compile

[INFO] |  |  |  +- com.google.protobuf:protobuf-java:jar:2.5.0:compile

[INFO] |  |  |  +- com.google.code.gson:gson:jar:2.2.4:compile

[INFO] |  |  |  +- org.apache.hadoop:hadoop-auth:jar:2.6.0:compile

[INFO] |  |  |  |  +- org.apache.httpcomponents:httpclient:jar:4.2.5:compile

 

Cheers

 

On Mon, Mar 16, 2015 at 9:38 AM, Shuai Zheng szheng.c...@gmail.com wrote:

Hi All,

 

I am running Spark 1.2.1 and AWS SDK. To make sure AWS compatible on the 
httpclient 4.2 (which I assume spark use?), I have already downgrade to the 
version 1.9.0

 

But even that, I still got an error:

 

Exception in thread main java.lang.NoSuchMethodError: 
org.apache.http.impl.conn.DefaultClientConnectionOperator.init(Lorg/apache/http/conn/scheme/SchemeRegistry;Lorg/apache/http/conn/DnsResolver;)V

at 
org.apache.http.impl.conn.PoolingClientConnectionManager.createConnectionOperator(PoolingClientConnectionManager.java:140)

at 
org.apache.http.impl.conn.PoolingClientConnectionManager.init(PoolingClientConnectionManager.java:114)

at 
org.apache.http.impl.conn.PoolingClientConnectionManager.init(PoolingClientConnectionManager.java:99)

at 
com.amazonaws.http.ConnectionManagerFactory.createPoolingClientConnManager(ConnectionManagerFactory.java:29)

at 
com.amazonaws.http.HttpClientFactory.createHttpClient(HttpClientFactory.java:102)

at com.amazonaws.http.AmazonHttpClient.init(AmazonHttpClient.java:190)

at 
com.amazonaws.AmazonWebServiceClient.init(AmazonWebServiceClient.java:119)

at 
com.amazonaws.services.s3.AmazonS3Client.init(AmazonS3Client.java:410)

at 
com.amazonaws.services.s3.AmazonS3Client.init(AmazonS3Client.java:392)

at 
com.amazonaws.services.s3.AmazonS3Client.init(AmazonS3Client.java:376)

 

When I search the maillist, it looks the same issue as:

https://github.com/apache/spark/pull/2535

http://stackoverflow.com/questions/24788949/nosuchmethoderror-while-running-aws-s3-client-on-spark-while-javap-shows-otherwi

 

But I don’t understand the solution mention here? The issue is caused by an 
pre-package  DefaultClientConnectionOperator in the spark all-in-one jar file 
which doesn’t have the that method.

 

I have some questions here:

 

How can we find out which exact version when spark try to pre-package 
everything (this really very painful). and how can we override it?

 

I have tried:

 

val conf = new SparkConf()

  .set(spark.files.userClassPathFirst, true)// For non Yarn APP before 
spark 1.3

  .set(spark.executor.userClassPathFirst, true)// For spark 1.3.0

But it doesn’t work

 

This really create a lot of issues to me (especially we don’t know what version 
is used by Spark to package