Hadoop 为什么配置单元中的获取任务比仅映射任务工作得更快?

Hadoop 为什么配置单元中的获取任务比仅映射任务工作得更快?,hadoop,optimization,hive,hive-configuration,Hadoop,Optimization,Hive,Hive Configuration,可以使用配置单元Hive.Fetch.task.conversion参数在配置单元中为简单查询而不是Map或MapReduce启用Fetch任务 请解释为什么Fetch任务的运行速度比Map快得多,尤其是在执行一些简单工作时(例如select*fromtable limit 10;)?在这种情况下,仅映射任务还执行什么操作?在我的例子中,性能差异快了20多倍。两个任务都应该读取表数据,不是吗?FetchTask直接获取数据,而Mapreduce将调用Mapreduce作业 hive.fetc

可以使用配置单元
Hive.Fetch.task.conversion
参数在配置单元中为简单查询而不是Map或MapReduce启用Fetch任务


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

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


hive.fetch.task.conversion
最小的
某些select查询可以转换为单个提取任务
最小化延迟。当前查询应为单一查询
源代码没有任何子查询,因此不应具有
任何聚合或分离(产生),
侧视图和连接。
1.最小值:选择星形,在分区列上筛选,仅限
2.更多:仅选择、筛选、限制(+表示例、虚拟列)

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


hive.fetch.task.conversion
最小的
某些select查询可以转换为单个提取任务
最小化延迟。当前查询应为单一查询
源代码没有任何子查询,因此不应具有
任何聚合或分离(产生),
侧视图和连接。
1.最小值:选择星形,在分区列上筛选,仅限
2.更多:仅选择、筛选、限制(+表示例、虚拟列)