1.具体问题背景 2022年农历年前,为了解决大SQL文件血缘解析不能完整处理的问题。 之前是由于单个线程对文件中的sql语句,进行血缘解析的,当有嵌套层次很深的语句时,线程超时终止(原因未确定), 后代码优化,增加了线程池的多线程处理,每条语句采用单独的线程解析,避免一个语句不能执行,导致整个文件任务无法执行完毕。 代码提交之后,采用jekins进行打包,开发测试这边本地没有测试环境,现场部署后,待解决的问题可以处理。 但后面,有报元数据的数据源信息不能连接、采集, 问现场,说是部署后一段时间,元数据还是能连接采集。 然后根据错误日志分析,一是,报错中的hive、hbase依赖版本不兼容、二是,新写代码有导致。三是、hive环境问题。 根据日志分析新增代码,找不到具体的问题,排除二 虽然现场的描述,说第一种可能型不大,但需要质疑,然后替换原有的包,能正常采集,排除三。 然后对比之前可用的包和现在的jar包,用compare比较其中的jar包依赖,发现新的包中多了高版本的一些hive、hbase依赖。 分析为什么打包会有这样的问题,用新打出的包中的一些独有的jar包名称,在各pom文件查询,发现集成了一些非当前使用的pom文件中的jar, 检查jekins,使用的是正确的pom文件,然后思索可能性,是否是没有clean, 然后检查jekins打包脚本,发现kotlin编译前没有clean,导致之前打的包如果有额外的依赖jar不会被覆盖,相同的依赖却可以覆盖。 结论一: 1.尽量检查jekins的打包脚本,打包之前需要clean操作。 2.不要盲目相信现场同时的说辞,需要自己合理推测验证。
标签:语句,功能,jekins,jar,升级,采集,线程,打包 From: https://www.cnblogs.com/seufelix/p/17516148.html