2017-03-27 120 views
0

我需要知道如何在Hadoop等分布式系统上执行hive查询。我查了其他问题,但没有一个详细解释。如何在hadoop中执行hive查询

我正在寻找完整的执行过程。正如我想知道为什么蜂巢连接查询比简单选择查询花费更多时间。

任何人都知道蜂巢执行过程,请解释。 PS:我使用hortonworks数据平台作为Hadoop框架。

+0

如果任何人都可以提供良好的文档链接为蜂巢查询过程将是非常有益的。 – techprat

回答

0

用户提交的SQL查询由Hive转换为经过优化并转换为Tez Jobs的物理运算符树,然后在Hadoop集群上执行。 Hadoop中的分布式SQL查询处理与传统的关系查询引擎在处理中间结果集时不同。 Hive查询处理通常需要对中间结果集进行排序和重组;这被称为Hadoop说法中的混洗。

蜂巢中现有的大多数查询优化都是关于最小化洗牌成本。目前,用户必须使用正确的连接顺序向Hive提交优化的查询,以便高效地执行查询。 Hive中的逻辑优化仅限于过滤器下推,投影修剪和分区修剪。基于成本的逻辑优化可以显着提高Apache Hive的查询延迟和易用性。

加入重新排序和加入算法选择是可以从基于成本的优化器受益的优化中的一小部分。基于成本的优化器可以让用户不必按照正确的顺序重新排列连接,或者通过使用查询提示和配置选项来指定连接算法。这可能使用户无需担心查询优化就可以将报告和ETL需求建模为接近业务流程。

阅读wiki,它得到了你想要的。如果您有关于代码的具体问题,请发布您尝试的内容以及您希望实现的内容。