gpt4 book ai didi

hadoop - 为什么 Hive 中的 Fetch 任务比 Map-only 任务运行得更快?

转载 作者:可可西里 更新时间:2023-11-01 16:42:09 26 4
gpt4 key购买 nike

可以使用 hive hive.fetch.task.conversion 参数在 Hive 中启用 Fetch 任务进行简单查询,而不是 Map 或 MapReduce。

请解释为什么 Fetch 任务比 Map 运行得快得多,尤其是在做一些简单的工作时(例如 select * from table limit 10;)?在这种情况下,另外执行什么 map task ?在我的例子中,性能差异快了 20 多倍。这两个任务都应该读取表数据,不是吗?

最佳答案

FetchTask 直接获取数据,而 Mapreduce 将调用 map reduce 作业

<property>
<name>hive.fetch.task.conversion</name>
<value>minimal</value>
<description>
Some select queries can be converted to single FETCH task
minimizing latency.Currently the query should be single
sourced not having any subquery and should not have
any aggregations or distincts (which incurrs RS),
lateral views and joins.
1. minimal : SELECT STAR, FILTER on partition columns, LIMIT only
2. more : SELECT, FILTER, LIMIT only (+TABLESAMPLE, virtual columns)
</description>
</property>

还有一个参数hive.fetch.task.conversion.threshold 默认在0.10-0.13是-1,>0.14是1G(1073741824)这表明,如果表大小大于 1G,请使用 Mapreduce 而不是 Fetch 任务

more detail

关于hadoop - 为什么 Hive 中的 Fetch 任务比 Map-only 任务运行得更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39894681/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com