源库数据抽取问题报错集锦

作者简介:叶董文,工学硕士,现就职于海天起点湖南办事处,任大数据开发工程师一职,主要从事oracle数据和线下文本数据同步至大数据平台的工作。

目前,某客户数据抽取涉及35个业务系统,利用某平台采用4种抽取方式抽取数据,分别为分布式JDBC、Sqoop、Spark和FTP,利用最多的是分布式JDBC和Spark。抽取数据时,由于源库不稳定、源表字段不标准、随意更换密码和用户权限等问题,导致表抽取经常失败,幸好可以查询错误日志信息,帮助发现错误原因,找到对应方法解决问题。

源库问题导致的接数任务失败错误信息

从集群服务器中启动模板实列失败

报错详情如下:

I/O error on POST request for “http://10.223.41.91:7091/nifi-api/process-groups/bfoc4c36-0169-1000-2ce9-cfc24f97497b/template-instance”:Unexpected end of file from server,nested exception is java.net.SocketException:Unexpected end of file from server

端口无法监听客户端,不能连接

报错详情如下:

Java.sql.SQLException:Listener refused the connection with the following error ORA-12518,TNS:listener could not hand off client connection

读取配置模板失败

报错详情如下:

Java.sql.SQL RecoverableException:IO Error:Got minus one from a read call

启动程序无法接收来自服务器的数据

报错详情如下:

Com.mysql.jdbc:exceptions.jdbc4.CommunicationsException:Communications link failure The last packet sent successfully to the server was o milliseconds ago.The driver has not received any packets from the server

源库更换用户名和密码,导致无法登录源库

报错详情如下:

Java.sql.SQLException ORA-01017:invalid usename/password,logon denied

无效内容超过最低限度,模板申请失败

报错详情如下:

Org.postgresql.util.PSQLException:ERROR:failed to acquire resource from resource manager,3 of 8 segments are unavailable,exceeds 25.0% defined in GUC hawq_rm_rejectrequest_nseg_limit.The allocation request is rejected .(pquety.c:812)

源库问题导致无法创建连接

报错详情如下:

Java.sql.SQLRecoverableException:IO Error:The Network Adapter could not establish the connection

解决办法

该平台启动数据抽取任务时,先通过源库地址连接源库,根据查找到的源表信息,在集群服务器中寻找匹配的模板实例,再调用nifi组件做分发处理,根据源表数据量和分区情况,采用对应的抽取方式,执行sql语句,查询源表数据,写入hive。

容易出错的地方是调用匹配的模板实例部分和执行sql语句部分。一般出现以上报错信息,如果失败任务比较多,特别是有jar包更新时,先重启底层组件,而后在源库操作不多的时候,重启失败任务,重新从源库中抽取数据。对一些不规则的源表表结构,如字段中有正斜杆和空格等,对每张此类的问题表,都要单独做相应的处理。

未经允许不得转载:Oracle一体机用户组 » 源库数据抽取问题报错集锦

相关推荐