【问题标题】:Date type column is getting decremented on sqoop import by 2 days from SQL server to Hive从 SQL Server 到 Hive 的 sqoop 导入时,日期类型列减少了 2 天
【发布时间】:2017-02-11 02:02:08
【问题描述】:

我在数据库中有一张表,其中insertdate 是“日期”类型。但是,当我使用 hive 表中的 sqoop 值将表导入 hive 时,表中的值会减少。

例子

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

【问题讨论】:

    标签: sql-server date import hive sqoop


    【解决方案1】:

    问题不在于 Sqoop,而在于 SQL Server 的 JDBC 驱动程序

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

    我认为您将sqljdbc4.jar 放入/sqoop/lib

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

    sqljdbc41.jar 使用 Java 7 编译)

    【讨论】:

      【解决方案2】:

      添加sqljdbc41.jar后就可以了。

      【讨论】:

        【解决方案3】:

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

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

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

        --用户名-P \

        --表 VW_Location_History_For_Hadoop \

        --target-dir /apps/hive/warehouse/test.db/location_h \

        --hive-table test.location_hierarchy \

        --fields-terminated-by "," \

        --hive-import \

        --删除目标目录 \

        --m 1

        【讨论】:

          猜你喜欢
          • 2021-05-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-13
          • 2015-09-24
          • 1970-01-01
          • 1970-01-01
          • 2016-05-10
          相关资源
          最近更新 更多