历史版本24 :定时任务问题排查 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 数据转换编辑

1.1 日志报错:Spark执行错误

报错信息:[数据关联]: Spark执行错误- org apache spark sql. execution joins .exception.N2NInterruptException - null

原因:

spark保护机制,避免数据量极速膨胀触发服务器宕机,通常在关联结果膨胀超过5倍 + 关联数据量大于 1kw出现。

满足下面所有条件,判定为不合理场景:     a.存在N:N的情况     b.N:N步骤的结果数据量超过1kw     c.N:N膨胀系数>=5

例如,100w数据和500w数据N:N结果为2000w数据,那么N:N膨胀系数为: 2000w/500w =4,或者2000w/100w =20

1.2 DB表输出为GreenPlum(并行装载)时报错:Data write error - connection disables

原因:

gpdfist不支持放置路径有空格

解决方案:

放置文件的路径下有空格,换个文件夹放置,并重启gpfdist进程

1.3 简道云入库MySQL报错Table doesn't exist

原因:

简道云字段过长,字段类型不匹配

解决方案:

通过字段设置修改对应字段的长度

2. SQL脚本编辑

2.1 节点中直接使用call 存储过程不生效

原因:

存储过程没有指定数据库模式,jdbc方式没有识别

解决方案:

除Mysql数据库外,其他数据库的存储过程、数据表调用时,建议均增加模式名:call 模式名.存储过程名

2.2 sql脚本节点运行后,任务日志界面报错:jeva.sql.sQLException: Incorrect string value: "xE7\x8E\x8B\xE5\xA9\x7...' for column 'user_ name' at row 1

原因:

一节点使用自动建表创建目标表A,二节点使用手动建表语法创建目标表B,三节点将目标表A的数据进行汇总插入到目标表B,报错的原因是自动创建的目标表编码格式和手动创建表的编码格式不同,如下图:

解决方案:

手动创建表时,指定目标表编码格式和自动创建表格式相同

CREATE TABLE IF NOT EXISTS `test1234` (
`user_name` varchar(255) DEFAULT NULL,
`numbers` varchar(255) DEFAULT NULL
)charset=utf8mb4

2.3 sql脚本节点运行后,任务日志界面报错

Code:[DatasourceError. 008], Description:[Cached table data has been removed].Code:[DICommon-20], Describe:[Shutdown command received.]

原因:

sql脚本】先删除数据库前两天的数据,【数据同步】把excel的数据同步到数据库预览正常且数据量不大,但数据计算有点大,预览时间超过六十秒

解决方案:

如果超过60s,会自动清除服务器数据集对象

2.4 SQL脚本运行时会有服务器内部错误

原因:

left join 前面加了空格会报错,防火墙把敏感词过滤导致请求挂了

解决方案:

需要修改防火墙进行放行

3. 任务运行编辑

3.1 所有任务均无法执行,报错无法执行cloudpayorder

原因:

Finedb中存在两条一样的数据

解决方案:

SELECT * FROM "fine_dp_conf_entity_x"

where value_class = 'WorkAttributeEntity' and entity_value like '%%'

先看fanruan.log里面的报错信息,定位到错误信息:


  1. 打开finedb,找到fine_dp_conf_entity_x

  2. 执行上述sql语句,找到日志里的圈起来的dp文件。

  3. 删除其中一个文件即可

3.2 任务执行失败,报错:com.mysql.jdbc.execeptions.jdbc4.MySQLNonTransientConnectionException

No operations allowed after connection closed;

原因:

工程的MySQL版本是5.7.37,使用了5.1.37版本的驱动Jar,导致不匹配

解决方案:

MySQL和MySQL驱动版本不匹配,换一下驱动即可

3.3 GP到GP数据库任务执行失败,报错信息:SQL执行失败

原因:

临时表的建表规则是ext_gpload_组件ID_模式名_表名_时间戳,由于表名太长了,导致后面的被截断,出现了重复表名,外部表创建失败。

解决方案:

把复用临时表改成了否,就可以执行成功。

4. 参数赋值编辑

4.1 参数赋值下游节点报错:SQL执行失败

1656384930Faqh[1].png

原因:

参数赋值中选择“文本型分隔”后,在下游的数据同步节点中引用时,加了引号“”

解决方案:

如果参数赋值选择了数值型参数,则后续传递的参数,在引用中需要加引号;如果选择了文本型分隔,则后续传递的参数,不需要加引号。具体操作如下图所示:

16554478249Yti[1].png

1655448007dYwt[1].png


5. 消息通知编辑

5.1 企业微信消息通知

运行时报错:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

产生原因及解决方案:

关掉了外网访问,内网IP与外网不通,导致消息通知时报错,开启外网访问就好。

6. 外接数据库编辑

6.1 配置外置数据库MySQL5.7.26提示数据库连接中,点击测试连接报错

原因:

数据库账号的权限不足,无法自动建表

解决方案:

配置外接数据库的地方没有报错,在测试连接的地方有个报错,是因为MySQL账号权限不足,无法自动建表。

7. Shell脚本编辑

7.1 shell脚本报错,行xxx:java未找到命令


解决方案:

将notepad++编译器中的【换行】换成linux格式就好了,原先的是Windows格式,传到linux上脚本不兼容。

8. 插件问题编辑

8.1 【多产品连接插件】连不上FDL,但是BI可以连上

原因:

连接服务器的tomcat禁用了options请求

解决方案:

删除tomcat的web.xml的options