使用 Impala 和 Hive2 JDBC 驱动程序的奇怪问题

Weird issue using Impala with the Hive2 JDBC drivers

我在尝试通过 Hive2 JDBC 驱动程序连接到 Impala 时遇到了奇怪的行为。我正在连接到集群 运行 CDH 5.3.6.

基本上,当执行像

这样的查询时
CREATE TABLE new_table AS (SELECT * FROM old_table LIMIT 10)

Impala 使用 old_table 中的所有列创建 table,但没有任何行。使问题更加混乱的是,通过 运行 与 Squirrel 或 Hue 完全相同的查询,该语句正确地创建了 new_table,其中包含来自 old_table.[=19 的十行=]

我写了 a couple of small programs 来测试这个问题。请注意,即使我使用了错误的驱动程序版本 (hive-jdcb-0.12.0-cdh5.1),Squirrel 也会使用完全相同的驱动程序正确执行查询。

有人知道是什么原因造成的吗?非常感谢您。

简而言之,这种 JDBC 驱动程序和 Impala 的特定组合不起作用并且不受支持。如果你碰巧需要同时使用它们,唯一明显的解决方法是依赖 executeQuery 调用而不是 execute and/or executeUpdate (即使我没有测试过它).