数据库中有一个表 insertdate
是“日期”类型。但是,当我使用sqoop将表导入配置单元时,配置单元表中的值正在递减。
例子
rdbms-->insertdate='2013-04-01'
配置单元-->插入日期=“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
3条答案
按热度按时间zlwx9yxi1#
问题不在于sqoop,而在于sqlserver的jdbc驱动程序。
检查相关问题-日期始终为两天
我认为你在
sqljdbc4.jar
在/sqoop/lib
.使用
sqljdbc41.jar
或者更新的来解决这个问题。(
sqljdbc41.jar
是用java 7编译的)kq4fsx7k2#
在mysql中使用参数:-d mapreduce.map.java.opts=“-duser.timezone=gmt”解决
sqoop import-d mapreduce.map.java.opts=“-duser.timezone=gmt”
--连接jdbc:mysql://主机名/位置
--用户名-p
--表vw\u location\u history\u for \u hadoop
--目标目录/apps/hive/warehouse/test.db/location\h
--配置单元表test.location\u层次结构
--以“,”结尾的字段
--配置单元导入
--删除目标目录
--米1
mm5n2pyu3#
它在添加sqljdbc41.jar之后工作。