日期类型列在从 SQL 服务器到 Hive 的 sqoop 导入中减少 2 天

Date type column is getting decremented on sqoop import by 2 days from SQL server to Hive

我在数据库中有一个 table,其中 insertdate 是 'Date' 类型。但是,当我使用配置单元中的 sqoop 值将 table 导入配置单元时,tables 正在减少。

示例

RDBMS --> insertdate='2013-04-01'

Hive --> insertdate='2013-03-30'

我使用以下命令导入数据:

sqoop import --connect 'jdbc:sqlserver://localhost;username=XXXXX;password=XXXXXXX;database=XXXXXXXXXX'--table tbl_name \
 --warehouse-dir /user/hive/warehouse --m 1 \
 --hive-import --hive-database db_name --hive-overwrite --null-string '\N' --null-non-string '\N' --hive-drop-import-delims

问题不在于 Sqoop,而是在于 SQL Server.

JDBC 驱动程序

检查相关问题 - dates consistently two days off

我认为您将 sqljdbc4.jar 放在 /sqoop/lib 中。

使用 sqljdbc41.jar 或更新版本来解决这个问题。

(sqljdbc41.jar是用Java编译的 7)

添加 sqljdbc41.jar 后有效。

在 mysql 中通过使用参数解决:-D mapreduce.map.java.opts=" -Duser.timezone=GMT"

sqoop import -D mapreduce.map.java.opts=" -Duser.timezone=GMT" \

--连接jdbc:mysql://hostname/location \

--用户名-P \

--table VW_Location_History_For_Hadoop \

--目标目录/apps/hive/warehouse/test.db/location_h \

--hive-table test.location_hierarchy \

--以“,”终止的字段 \

--hive-import \

--删除目标目录\

--米1