【发布时间】: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