【问题标题】:Hadoop 2.6.x and Amazon AWS SDK Library conflicts http-core conflictHadoop 2.6.x 和 Amazon AWS 开发工具包库冲突 http-core 冲突
【发布时间】:2016-06-06 10:00:30
【问题描述】:

我的工作将每条记录写入 Hadoop 映射中的 DynamoDB。

我无法让它与具有 httpclient-4.2.5.jar 和 httpcore-4.2.5.jar 的 Hadoop 2.6 一起运行。

我使用的 AWS 是使用 httpclient-4.5.2.jar 和 httpcore-4.4.4.jar 构建的。

当我使用类路径来包含新的 jar 文件时,会出现以下异常。

java.lang.Exception: java.lang.NoSuchFieldError: INSTANCE
    at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
    at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:522)
Caused by: java.lang.NoSuchFieldError: INSTANCE
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)
    at com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.getPreferredSocketFactory(ApacheConnectionManagerFactory.java:87)
    at com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.create(ApacheConnectionManagerFactory.java:65)
    at com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.create(ApacheConnectionManagerFactory.java:58)
    at com.amazonaws.http.apache.client.impl.ApacheHttpClientFactory.create(ApacheHttpClientFactory.java:49)

在我看来,Hadoop 似乎是使用旧库构建的,并且语法发生了一些变化。

除了重新编译旧的 AWS 源之外,还有什么合理的解决方案?

【问题讨论】:

  • 你解决了吗?

标签: java hadoop amazon-web-services


【解决方案1】:

作为更新,我不得不切换到 Maven 并尝试使用这些版本。

 <!-- http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common -->
<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-common</artifactId>
    <version>2.6.0</version>
</dependency>

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-mapreduce-client-core</artifactId>
    <version>2.6.0</version>
</dependency>

 <!-- http://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk -->
 <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.3.4</version>
      <scope>compile</scope>
    </dependency>

<dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-dynamodb</artifactId>
        <version>1.9.13</version>
    </dependency>

    <dependency>
        <groupId>org.netpreserve.commons</groupId>
        <artifactId>webarchive-commons</artifactId>
        <version>1.1.4</version>
    </dependency>

终于成功了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-26
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 2021-02-10
    相关资源
    最近更新 更多