问题
您的Apache火花工作失败当试图采用S3操作。
造成的错误消息:java.net.SocketException:连接重置出现在堆栈跟踪。
堆栈跟踪例子从一个S3读操作:
引起的:javax.net.ssl.SSLException:连接重置;请求ID: XXXXX,扩展请求ID: XXXXX,云提供商:AWS,实例ID: i-XXXXXXXX sun.security.ssl.Alert.createSSLException (Alert.java: 127) sun.security.ssl.TransportContext.fatal (TransportContext.java: 324)…sun.security.ssl.SSLSocketImpl AppInputStream.read美元(SSLSocketImpl.java: 833) org.apache.http.impl.io.SessionInputBufferImpl.streamRead (SessionInputBufferImpl.java: 137)…在com.amazonaws.internal.SdkFilterInputStream.read org.apache.http.conn.EofSensorInputStream.read (EofSensorInputStream.java: 135) (SdkFilterInputStream.java: 90) com.amazonaws.event.ProgressInputStream.read (ProgressInputStream.java: 180) com.amazonaws.internal.SdkFilterInputStream.read (SdkFilterInputStream.java: 90)…引起的:java.net.SocketException:连接重置java.net.SocketInputStream.read (SocketInputStream.java: 210) java.net.SocketInputStream.read (SocketInputStream.java: 141) sun.security.ssl.SSLSocketInputRecord.read (SSLSocketInputRecord.java: 467) sun.security.ssl.SSLSocketInputRecord.readFully (SSLSocketInputRecord.java: 450) sun.security.ssl.SSLSocketInputRecord.decodeInputRecord (SSLSocketInputRecord.java: 243)
导致
Hadoop的旧版本S3连接器不重试SocketTimeoutException或SSLException错误。这些异常可能发生当一个客户端超时或服务器端超时,分别。
解决方案
这个问题已经解决在新版本的Hadoop S3连接器。砖上面运行时7.3 LTS和使用新的连接器。
- 如果您使用的是砖运行时7.3 LTS以上,确保这些设置不存在集群的火花配置:
spark.hadoop.fs.s3。impl com.databricks.s3a.S3AFileSystemspark.hadoop.fs.s3n.impl com.databricks.s3a.S3AFileSystem spark.hadoop.fs.s3a.impl com.databricks.s3a.S3AFileSystem
- 如果您使用的是砖运行时7.0 - 7.2,升级到砖运行时7.3 LTS或以上。
- 如果您使用的是砖或低于6.4运行时,联系支持援助。