当试图使用其Java使用阿里巴巴云的对象存储服务(OSS)的数据时,出现了"SSL对等点不正确关闭“异常。我们使用Oracle Java 8.x,Hadoop 3.x。我们将此异常作为Oozie工作流运行,并将数据放入HDFS路径。如何解决这个问题?
Gradle依赖项:(组:‘com.aliyun.oss’,名称:‘aliyun Dependency’,版本:“2.8.3”)
// Create an OSSClient instance.
ClientBuilderConfiguration clientConfig = new ClientBuilderConfiguration();
clientConfig.setProxyHost(PROXY_HOST);
clientConfig.setProxyPort(PROXY_PORT);
clientConfig.setProtocol(Protocol.HTTPS);
OSS ossClient = new OSSClientBuilder().build(ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET, clientConfig);
String fileKey = "4868a87eb2a0f7a06c43";
OSSObject ossObject = ossClient.getObject(BUCKET_NAME, fileKey);
InputStream objectContent = ossObject.getObjectContent();
try (InputStream inputStream = objectContent) {
copyInputStreamToFile(inputStream, targetFile);
}
例外:
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.JavaMain], main() threw exception, javax.net.ssl.SSLException: SSL peer shut down incorrectly
org.apache.oozie.action.hadoop.JavaMainException: javax.net.ssl.SSLException: SSL peer shut down incorrectly
...
Caused by: javax.net.ssl.SSLException: SSL peer shut down incorrectly
at sun.security.ssl.InputRecord.readV3Record(InputRecord.java:596)
at sun.security.ssl.InputRecord.read(InputRecord.java:532)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:975)
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:933)
at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:139)
at org.apache.http.impl.io.SessionInputBufferImpl.read(SessionInputBufferImpl.java:200)
at org.apache.http.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:178)
at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:137)
at java.util.zip.CheckedInputStream.read(CheckedInputStream.java:82)
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at com.aliyun.oss.event.ProgressInputStream.read(ProgressInputStream.java:116)
at java.util.zip.CheckedInputStream.read(CheckedInputStream.java:82)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:100)
at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:68)
at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:129)
发布于 2020-09-30 10:37:02
你每次都是随机的还是一成不变的?你没有提供足够的信息让人们帮助你。到目前为止,您尝试了哪些解决方案?
此错误消息SSL peer shut down incorrectly
是一条通用消息,它可能是由许多原因引起的。我建议你读一遍这,然后一个一个地试一遍。
尝试检查远程SSL证书,验证其有效性,很可能存在问题。
您也可以打开这个-Djavax.net.debug=ssl,handshake
,然后提供握手日志,这可以帮助缩小根源。
更新:
打开-Djavax.net.debug=ssl,handshake
需要你对握手过程有一定程度的理解,这在一段时间内可能会很困难。您可以使用像米特姆代理这样的工具来检查https流量。
还可以使用在线TLS检查器检查TLS支持。
https://stackoverflow.com/questions/61769595
复制相似问题