目录:
一、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服务依赖于zookeeper服务,需要先启动 zookeeper,再启动 Kafka。
关闭时则相反,先关闭Kafka,再关闭zookeeper。
1.5 配置传输队列的时候,报错connect timeout
原因:
FDL和Kafka不在一台机器上,需要跨服务器访问,而kafka默认是localhost访问,因此需要在配置文件设置ip进行访问
解决方案:
在server.properties需要配置listeners,如下,取消#号,并设置为具体ip
二、权限相关编辑
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自动建表逻辑是一比一映射,导致目标表的字段长度不够,写进来的数据全部判断为脏数据。
解决方案:
在数据库修改目标表的字段长度。