>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
>

Reply via email to