该工厂不是使用Spark Streaming和AWS创建的套接字

时间:2018-10-09 20:53:13

标签: amazon-web-services apache-spark httpclient

我正在通过Spark Streaming 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 jars着色。
  • 将httpclient和httpcore显式升级到4.5.x。
  • 将Amazon sdk升级到1.11.x。
  • 将hadoop升级到3.1.x。

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

1 个答案:

答案 0 :(得分:0)

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

我建议您获取与您使用的Spark发行版一致的ASF hadoop下载,然后从该发行版中放入(hadoop-aws,aws- ,http )JAR。或通过-Phadoop-cloud配置文件来激发自己,让maven完成工作。