問題
您的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運行時,聯係支持援助。