Sqoop启动mysql_to_hdfs_job报GENERIC_JDBC_CONNECTOR_0024错误如何解决?
Sqoop作业启动报错GENERIC_JDBC_CONNECTOR_0024问题解答
错误触发原因
Sqoop执行作业时需要唯一匹配待同步的数据库表,你创建的mysql_to_hdfs_job作业仅配置了表名table1和schemaSchema1,未明确指定catalog,而当前连接的数据库实例的Schema1、Schema2、Schema3三个catalog下均存在名为table1的表,Sqoop的JDBC连接器检索到多个匹配结果,无法确定同步目标,因此抛出GENERIC_JDBC_CONNECTOR_0024异常。
可行解决方案
- 调整作业表名配置,使用完整的表限定名。将作业中配置的表名参数修改为
[目标catalog名].[目标schema名].table1,如果目标表的schema为空,可以省略中间的schema位,保留两个点即可,比如同步Schema1 catalog下的table1时,将表名设为Schema1..table1,确保Sqoop可以唯一匹配到目标表。 - 在JDBC连接URL中添加默认catalog/schema限制。比如连接MySQL时,在JDBC URL末尾添加参数
?catalog=Schema1,或者对应数据库的默认schema配置参数,限制Sqoop只在指定的catalog/schema范围内检索表。 - 显式配置作业的catalog和schema参数。如果使用的是Sqoop2,更新作业时添加
--schema-name Schema1、--catalog-name Schema1配置项,直接指定目标表所属的catalog和schema,避免模糊匹配。 - (不推荐)如果其他catalog下的同名
table1无业务用途,可以删除或重命名多余的同名表,消除匹配冲突。
内容的提问来源于stack exchange,提问作者hdddddddddd
相关产品推荐
相关产品推荐

