如何在hadoop中执行配置单元查询

bfnvny8b  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(357)

我需要知道hive查询是如何在hadoop这样的分布式系统上执行的。我查过其他问题,但都没有详细解释。
我在寻找完整的执行过程。我想知道为什么配置单元连接查询比简单的选择查询花费更多的时间。
任何知道Hive执行过程的人,请解释。
ps:我使用hortonworks数据平台作为hadoop框架。

iugsix8n

iugsix8n1#

用户提交的sql查询由hive转换为物理操作符树,物理操作符树经过优化并转换为tez作业,然后在hadoop集群上执行。在处理中间结果集时,hadoop中的分布式sql查询处理不同于传统的关系查询引擎。配置单元查询处理通常需要对中间结果集进行排序和重新组装;用hadoop的说法,这叫做洗牌。
配置单元中现有的大多数查询优化都是关于最小化洗牌成本的。当前用户必须以正确的连接顺序向配置单元提交一个优化的查询,才能有效地执行查询。hive中的逻辑优化仅限于过滤器下推、投影修剪和分区修剪。基于成本的逻辑优化可以显著提高apachehive的查询延迟和易用性。
连接重排序和连接算法选择是少数可以从基于成本的优化器中获益的优化。基于成本的优化器将使用户不必按正确的顺序重新排列联接,也不必使用查询提示和配置选项指定联接算法。这可以潜在地释放用户,让他们在接近业务流程的情况下为自己的报告和etl需求建模,而不必担心查询优化。
看看维基,它有你想要的东西。如果你有一个关于代码的具体问题,张贴你尝试过的和你希望达到的目标。

相关问题