我需要知道如何在像Hadoop这样的分布式系统上执行hive查询。我已经检查了其他问题,但没有一个问题详细解释过。
我正在寻找完整的执行过程。正如我想知道为什么hive连接查询比简单选择查询花费更多时间。
任何了解蜂巢执行过程的人都请解释。
PS:我正在使用hortonworks数据平台作为Hadoop框架。
答案 0 :(得分:0)
用户提交的SQL查询由Hive转换为物理运算符树,该树经过优化并转换为Tez作业,然后在Hadoop集群上执行。在处理中间结果集时,Hadoop中的分布式SQL查询处理与传统的关系查询引擎不同。 Hive查询处理通常需要对中间结果集进行排序和重组;这在Hadoop用语中被称为混乱。
Hive中大多数现有的查询优化都是为了最大限度地降低洗牌成本。目前,用户必须向Hive提交优化查询,并使用正确的连接顺序来有效执行查询。 Hive中的逻辑优化仅限于过滤下推,投影修剪和分区修剪。基于成本的逻辑优化可以显着提高Apache Hive的查询延迟和易用性。
加入重新排序和连接算法选择是可以从基于成本的优化器中受益的一些优化。基于成本的优化器将使用户不必以正确的顺序重新排列连接,或者必须通过使用查询提示和配置选项来指定连接算法。这可以使用户可以将他们的报告和ETL需求建模到业务流程附近,而不必担心查询优化。
阅读wiki,它就是你所追求的。如果您对代码有特定问题,请发布您尝试过的内容以及您希望实现的内容。