首页 > 解决方案 > unixODBC isql 设置配置单元配置变量

问题描述

我有一个与 hive 的 unixODBC 连接:

isql -v Hive
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

例如select install_dt, count(1) from device_metrics.sometable where install_dt >= '2020-04-10' group by install_dt;

返回预期结果。

我想运行这个查询,但有一些配置单元变量设置。例如,我想将执行引擎设置为 mr 而不是默认的 tez。当直接连接到 hive 时,在 odbc 之外我可以这样做:

set hive.execution.engine=mr;
select ... [my query to run with mr here...

使用 isql 我试过这个:

SQL> set hive.execution.engine=mr;
SQLRowCount returns -1

我不太确定是什么,SQLRowCount returns -1但我想这意味着它是错误还是没有行受到影响?

无论哪种方式,我在尝试配置此设置后再次尝试运行我的选择查询:

SQL> set hive.execution.engine=mr;
SQLRowCount returns -1
select install_dt, count(1) from device_metrics.sometable where install_dt >= '2020-04-10' group by install_dt;

然后,当我查看我们的 hadoop 运行应用程序页面时,我可以看到我第二次尝试查询,但它仍在使用 tez 运行。预期和期望的行为是它将与先生一起运行。

是否可以使用 unixODBC 连接配置配置单元设置?如果是这样,我如何告诉 hive 使用 mr 引擎而不是 tez?

标签: hadoophiveodbcunixodbcisql

解决方案


推荐阅读