历史版本12 :数据管道问题排查 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

一、Kafka相关问题编辑

1.1 管道运行中报错:Exception during get all topics from broker

ERROR  Exception when realtime job run - com.fr.dp.exception.FineDPException: exception during get all topics from broker.

原因:

kafka未启动,无法获得相关topics

解决方案:

检查传输队列的测试连接可不可以成功,同时使用jps命令(需要有jdk环境),查看kafka状态。有时候jps命令不可用,则可以使用:ps -ef|grep kafka命令查看kafka进程

jps命令结果如下图则kafka服务器启动正常:


如果无对应kafka进程,则按照zookeeper—>kafka顺序启动服务即可,启动命令参考:部署Kafka-https://help.fanruan.com/finedatalink/doc-view-83.html

1.2 kafka测试连接失败


解决方案:

Kafka测试连接失败,把meta.properties文件删了启起来了

1.3 数据管道报错,但是测试连接成功


原因:

连接没问题,但是表存在问题,有一个表配置了336个字段,实际上这个表只有289个字段。

解决方案:

检查发现同步的表中,目标表有个同名表是已经存在的,但是表结构是不一样的,导致报错。

1.4 kafka启动失败


原因:

Kafka和zookeeper关闭先后顺序不对导致的问题

解决方案:

删除Kafka日志文件目录下的meta.properties文件,重启zookeeper和Kafka。

kafka服务依赖于zookeeper服务,需要先启动 zookeeper,再启动 Kafka。

关闭时则相反,先关闭Kafka,再关闭zookeeper

1.5 配置传输队列的时候,报错connect timeout


原因:

FDL和Kafka不在一台机器上,需要跨服务器访问,而kafka默认是localhost访问,因此需要在配置文件设置ip进行访问

解决方案:

在server.properties需要配置listeners,如下,取消#号,并设置为具体ip

   

1.6 Kafka启动之后自动关闭

原因:

查看zookeeper日志,监听端口2181被占用。

解决方案:

使用lsof -i:端口号查看占用该端口号的进程,关闭该进程或修改zookeeper的监听端口。

二、权限相关编辑

2.1 数据管道启动后报错:任务终止执行-Interrupt realtime task

前端报错如图

fanruan.log报错SQL执行失败 - No corresponding type for code: 0

原因:

缺少了sys下面的某些权限

解决方案:

给用户赋数据库onwer的权限

三、数据库相关编辑

3.1 FDL的finedb是SQL server,数据管道报错死锁

具体报错“事务进程[ID 101]与另一个进程被死锁在锁资源上,并且已被选作死锁牺牲品,请重新运行该事务。”

原因:

外置finedb是SQL server,SQL server是块锁,再进行save or update操作时,如果先查询,则会给一块的数据加共享锁,如果两个事务同时给数据加了共享锁。其中一个事务想更新的时候,因为要升级锁,就会导致死锁,就会牺牲掉一个线程,导致任务的失败。

解决方案:

方案一:

1. 设置隔离级别

hibernate.connection.isolation=8

2. 设置SqlServer的行版本控制功能打开

SET ALLOW_SNAPSHOT_ISOLATION ON
SET READ_COMMITTED_SNAPSHOT ON

方案二:

切换外置finedb为MySQL或者Oracle。

3.2 MySQL-GaussDB 200数据管道自动建表全部报错为脏数据

原因:

不同数据库中的中文的字符存贮长度不同,GaussDB 200的长度是MySQL库的三倍,截止版本4.0.13,FDL自动建表逻辑是一比一映射,导致目标表的字段长度不够,写进来的数据全部判断为脏数据。

解决方案:

在数据库修改目标表的字段长度。

3.3 全量同步报错:duplicate key

问题描述:

数据管道任务进行同步全量阶段报错:duplicate key

原因分析:

管道中存在多个数据库,不同数据库中存在同名表。

解决方案:

一个数据库一个管道的方式进行同步