Dinky版本:0.7.3
Flink版本:1.13.0
问题描述
问题1:已有实例不显示
在Dinky的【注册中心】---【Flink实例管理】中:
hadoop集群以及zookeeper重启后,之前创建的一个yarn-session实例莫名其妙找不到了;
此时还没有启动yarn-session集群(但显然与这个没有关系,因为就算没有启动yarn-session集群,实例状态会显示异常,但不会直接没有)
接下来启动yarn-session集群
接下来点击心跳会发现:
出现报错信息:
obtain applicationId failed,Please check url is corrected:java.lang.Exception: app with id: application_1705278324636_0018 not found
根据这条报错信息我推测之前创建的实例并没有消失,只是由于未知异常没法显示出来,要不然之前实例中配置的Job ID application_1705278324636_0018应该不会产生任何影响;
问题2:无法新建实例
发现以上问题之后我尝试新建Flink 实例:
填写以下信息:
点击【完成】时报错如下:
报错信息:
Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'yarn-session-1.13-1' for key 'dlink_cluster_un' ### The error may exist in com/dlink/mapper/ClusterMapper.java (best guess) ### The error may involve com.dlink.mapper.ClusterMapper.insert-Inline ### The error occurred while setting parameters ### SQL: INSERT INTO dlink_cluster (alias, type, hosts, job_manager_host, application_id, resource_manager_addr, version, status, auto_registers, name, enabled, create_time, update_time, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1) ### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'yarn-session-1.13-1' for key 'dlink_cluster_un' ; Duplicate entry 'yarn-session-1.13-1' for key 'dlink_cluster_un'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'yarn-session-1.13-1' for key 'dlink_cluster_un'
总之感觉很乱,但核心报错信息是这一句:Duplicate entry 'yarn-session-1.13-1' for key 'dlink_cluster_un'
,说明数据库中主键重复了,相关数据库是dlink_cluster
问题解决
在以上两个问题的分析中我注意到后面新建的实例名称和之前莫名其妙消失的实例名称相同,这样我们就不难得出结论,之前的实例因为未知异常而无法显示,但仍存在于数据库之中,所以会导致后面新建异常
为了验证该推测,来到MySQL数据库中,找到dinky的元数据表dlink_cluster
,发现确实有一条数据:
接下来将其删除即可重新新建实例:
问题至此已经解决,但导致问题的原因未明,如果有遇到相同问题的同学欢迎讨论交流~