hadoop - 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?
解决方案
推荐阅读
- jenkins - 如何在 Jenkins 脚本化管道中设置环境变量?
- javascript - 使用 Node 的 http 模块提供 angular.min.js
- java - 如何通过 url 路径变量解析环境?
- rspec - RSpec中的'it'和'example'有什么区别?
- c# - GCM - Android 推送通知 - MismatchSenderId 错误
- php - 在PHP中的坐标数组之间找到两个最远的对象
- java - ResultSet getDouble() 检查 EMPTY 值
- asp.net-core - 带有时间指示器问题的 ASP.Net Core API DateTime
- windows - 需要从文本文件中表的列中提取唯一值
- python - 为什么我的学位论点表现得很奇怪?