使用sqoop报错
报错一:
java.io.IOException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf
这个错误表示在执行与 Hive 相关的操作时,程序无法找 org.apache.hadoop.hive.conf.HiveConf
这个类。这个类是 Hive 的配置类,它用于加载 Hive 配置,因此当程序需要与 Hive 交互时,必须确保 Hive 的相关依赖已经正确加载。
解决方法:
把 hive-common-3.1.2.jar 架包导入导 sqoop 的 lib 目录下面
cp /opt/installs/hive/lib/hive-common-3.1.2.jar /opt/installs/sqoop/lib/
报错二:
com.mysql.cj.exceptions.DataReadException: Zero date value prohibited
错误原因
- 零日期值存在于数据库中:在 MySQL 中,日期字段有时可能存储为
0000-00-00
,表示未知或未设置的日期。 - JDBC 驱动限制:从 MySQL Connector/J 8.0 版本开始,默认情况下禁止零日期值,因为在 Java 中无法处理
0000-00-00
这种无效的日期。
解决方法:
在你的 JDBC URL 中添加参数,指定在遇到零日期值时的处理方式。
zeroDateTimeBehavior=CONVERT_TO_NULL
示例:
jdbc:mysql://192.168.140.128:3306/jrxd?characterEncoding=UTF-8&zeroDateTimeBehavior=CONVERT_TO_NULL