作为集群迁移的一部分,我们将 ORC hdfs 文件从旧集群 - IBM IOP 4.2 复制到 HDP 3.1。迁移后,我们看到 TIMESTAMP 列在 HDP 3.1 中显示 -1 小时。类似问题发布在 - Hive 1.1 中的时间戳问题
我们交叉检查了集群中所有节点的 TIME ZONE 配置 - Linux OS 和 Hive,并且都设置为 EDT(本地时区)。
尝试通过使用 hive -orcfiledump -d 读取 ORC 文件内容来测试此场景,我们看到实际文件在 orc 文件中具有正确的时间戳值。即使 Hive 正在读取它并显示记录,列值也会发生变化。
OLD 集群上的 ORC 外部表输出。
DATE_KEY DTDATE
20100701 7/1/2010 12:00:00 AM
20100702 7/2/2010 12:00:00 AM
20100703 7/3/2010 12:00:00 AM
新 HDP 3.1 集群上的 ORC 外部表输出。DTDATE 列显示 -1 小时
DATE_KEY DTDATE
20100701 6/30/2010 11:00:00 PM
20100702 7/1/2010 11:00:00 PM
20100703 7/2/2010 11:00:00 PM