Flink1.8.0执行sql,没有用到kafka怎么会报这个错误呢?

Flink1.8.0执行sql,没有用到kafka怎么会报这个错误呢?有知道的吗?求助一下 1488ed49dd8f92dac081f7e34e94b98f.png

展开
收起
真的很搞笑 2024-03-19 12:11:37 52 分享 版权
阿里云 AI 助理回答

根据您提供的错误信息和知识库中的相关资料,以下是针对问题的详细解答:


问题分析

您提到在使用 Flink 1.8.0 执行 SQL 时,尽管没有直接使用 Kafka,却出现了以下错误:

java.io.EOFException: SSL peer shut down incorrectly

该错误通常与 SSL/TLS 握手失败有关,可能是由于网络连接、证书配置或依赖库版本不兼容等问题导致的。即使您的作业未显式使用 Kafka,Flink 的某些组件(如连接器或依赖库)可能隐式地尝试与外部服务建立连接,从而触发此错误。


可能原因及排查步骤

1. 隐式依赖问题

Flink 的运行环境可能加载了与 Kafka 相关的依赖库,即使您的 SQL 作业未显式使用 Kafka。例如: - 如果您的作业中引用了某些自定义连接器或第三方库,这些库可能默认启用了 Kafka 支持。 - 某些版本的 Flink 自带的 Kafka 连接器可能会在初始化时尝试与 Kafka 集群建立连接。

解决方法: - 检查您的 pom.xml 或依赖配置文件,确认是否包含 Kafka 相关依赖。如果不需要 Kafka,可以移除相关依赖。 - 如果使用的是阿里云实时计算 Flink 版,请确保使用的引擎版本与依赖库版本兼容。

2. SSL/TLS 配置问题

错误信息表明 SSL 握手失败,可能是由于以下原因: - 外部服务(如 MySQL、Kafka 等)启用了 SSL,但客户端未正确配置证书或密钥。 - 客户端与服务端之间的 SSL 协议版本不匹配。

解决方法: - 如果您的作业涉及 MySQL 数据库连接,请检查 MySQL 的 SSL 配置。例如,确保 properties.useSSL 参数设置为 false,以禁用 SSL 连接。 - 如果确实需要启用 SSL,请确保客户端和服务端的证书配置一致,并验证证书链是否完整。

3. 动态分区检测功能

从知识库中得知,Flink 实时计算引擎 VVR 8.0 及以上版本默认启用了动态分区检测功能。如果您的作业中使用了 Kafka 表,即使未显式声明,也可能触发该功能并尝试连接 Kafka 集群。

解决方法: - 在 SQL 作业中显式关闭动态分区检测功能。例如,添加以下参数:

'scan.check.duplicated.group.id' = 'false'
  • 如果未使用 Kafka 表,建议检查作业代码,确保未隐式引用 Kafka 连接器。

4. 网络或服务端问题

错误可能由网络中断或服务端异常导致。例如: - Kafka 或其他外部服务未正确启动。 - 网络防火墙或代理阻止了客户端与服务端的通信。

解决方法: - 检查外部服务(如 Kafka、MySQL 等)是否正常运行。 - 确保客户端能够访问服务端的地址和端口。


具体解决方案

1. 检查依赖配置

如果您使用的是 Maven 项目,请检查 pom.xml 文件,移除不必要的 Kafka 依赖。例如:

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-connector-kafka_2.11</artifactId>
    <version>1.8.0</version>
</dependency>

如果不需要 Kafka,可以直接删除上述依赖。

2. 调整 SQL 配置

在 SQL 作业中,显式关闭动态分区检测功能,并确保未引用 Kafka 表。例如:

CREATE TEMPORARY TABLE my_table (
    ...
) WITH (
    'connector' = 'jdbc',
    'url' = 'jdbc:mysql://rm-**********.mysql.rds.aliyuncs.com:3306/test_db',
    'table-name' = 'my_table',
    'driver' = 'com.mysql.jdbc.Driver',
    'username' = 'flinK*****',
    'password' = 'Test****',
    'properties.useSSL' = 'false'
);

3. 升级 Flink 版本

Flink 1.8.0 是一个较旧的版本,可能存在已知的兼容性问题。建议升级到更高版本(如 Flink 1.17 或更高),并确保使用阿里云实时计算 Flink 版的推荐配置。

4. 调试本地环境

如果问题出现在本地调试环境中,请参考知识库中的本地调试方案。例如: - 修改 pom.xml 文件,将 flink.version 设置为与阿里云实时计算 Flink 版兼容的版本。 - 删除不必要的依赖项,如 flink-connector-base


总结

通过上述分析和解决方案,您可以逐步排查并解决 java.io.EOFException: SSL peer shut down incorrectly 错误。重点在于: 1. 检查依赖配置,移除不必要的 Kafka 依赖。 2. 调整 SQL 配置,显式关闭动态分区检测功能。 3. 确保 SSL/TLS 配置正确,或禁用 SSL 连接。 4. 升级 Flink 版本以避免兼容性问题。

如果问题仍未解决,请提供更多上下文信息(如完整的错误日志或作业配置),以便进一步分析。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

还有其他疑问?
咨询AI助理