【问题标题】:Sqoop import for Date datatype in avro fromatavro 格式的日期数据类型的 Sqoop 导入
【发布时间】:2015-07-01 07:56:50
【问题描述】:

**我的问题是日期少了两天

在 SQL Server 中,日期为 2015-06-12(日期类型为日期)它被转换为 配置单元表avro格式的字符串,值为2015-06-10。

使用的脚本。

sqoop import --connect "xxx" --query 'select * from dbo.tableName WHERE $CONDITIONS' --target-dir xxx --fields-terminated-by '\001' --split-by tableName.columnName1 -m 8 --as-avrodatafile --compression-codec snappy --map-column-java columnName2=String,;

【问题讨论】:

  • 您使用的是什么版本的 Sqoop?这是 MS SQL Server,对吧?
  • 另外,您的服务器和您正在调用 Sqoop 的机器的时区是什么?
  • Sqoop 版本:sqoop 1.4
  • 服务器的日期/时钟和数据节点有区别吗?请记住,如果不指定 -D mapreduce.map.java.opts=" -Duser.timezone=$tz"(其中 $tz 是服务器的时区),Sqoop 将使用数据节点的时区解释时间戳(自纪元以来的秒数)。
  • 我调用 sqoop 的机器有时区 MST。但我无权访问 SQL 服务器。

标签: hadoop hive sqoop avro


【解决方案1】:

我想我可能知道。 MS SQL 驱动程序有一个带有 Java 7 的 known issue。要么降级到 Java 6,更新/升级你的 SQL Server 驱动程序,要么升级到 jTDS(我注意到 jTDS 的性能更好)。

【讨论】:

  • 很高兴我们能解决这个问题。你能接受我的回答吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多