2

我通过火花流 S3 访问遇到了这个异常。

java.lang.IllegalStateException: Socket not created by this factory
at org.apache.http.util.Asserts.check(Asserts.java:34)
at org.apache.http.conn.ssl.SSLSocketFactory.isSecure(SSLSocketFactory.java:435)...
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:310)...

at org.apache.hadoop.fs.s3a.S3AFileSystem.verifyBucketExists ...

我已经尝试了这些步骤 [来自其他线程,例如AWS Socket Not created by this factoryCannot use AWS SDK in Spring Boot Application (Socket not created by this factory) ] 并没有奏效。

  • 为所有 amazonaws 和 apache http jar 着色。
  • 将 httpclient 和 httpcore 显式升级到 4.5.x。
  • 将亚马逊 SDK 升级到 1.11.x。
  • 将 hadoop 升级到 3.1.x。

这些都不起作用,我现在被困了 2 天,这意味着我已经尝试了 stackoverflow 和互联网中的大多数解决方案。还有其他想法吗?

4

1 回答 1

1

这是“新的”,但 spark 已升级到 httpclient 版本,在某些情况下会破坏 hadoop 2.8 中的 s3a。这听起来像是症状之一

我建议获取与您正在使用的 spark 版本中的一致的 ASF hadoop 下载,然后从该版本中放入(hadoop-aws、aws- 、http)JAR。或者使用 -Phadoop-cloud 配置文件自己构建 spark 并让 maven 完成工作。

于 2018-10-11T14:48:11.793 回答