如何浅析Hive和Spark SQL读文件时的输入任务划分
Hive输入任务划分
Hive通过MapReduce来实现任务的输入划分,MapReduce将用户提交的任务分解成多个Map和Reduce任务,每个Map任务负责一个文件的数据读取和转换,每个Reduce任务负责多个Map任务的输出结果的合并。在Map任务中,Hive会根据文件的物理位置和大小,将文件划分成多个分片,每个分片会被一个Map任务处理,每个Map任务会读取分片中的数据,并将数据转换成key-value对的形式,然后将key-value对输出到Reduce任务中。
Spark SQL输入任务划分
Spark SQL也是通过MapReduce来实现任务的输入划分,但是Spark SQL的MapReduce框架与Hive的有所不同,Spark SQL采用的是全局分区的方式,也就是说,Spark SQL会将文件划分成多个分区,每个分区会被一个Map任务处理,每个Map任务会读取分区中的数据,并将数据转换成key-value对的形式,然后将key-value对输出到Reduce任务中。
比较
从上面的描述可以看出,Hive和Spark SQL在输入任务划分上的实现方式有所不同,Hive采用的是分片的方式,将文件划分成多个分片,每个分片会被一个Map任务处理;而Spark SQL采用的是全局分区的方式,也就是说,Spark SQL会将文件划分成多个分区,每个分区会被一个Map任务处理。
猜您想看
-
如何在Linux系统中进行性能测试和压力测试
SEO软文:如...
2023年05月10日 -
Spring Boot+JWT+Shiro+MybatisPlus怎么实现Restful快速开发后端脚手架
一、概述Spr...
2023年07月21日 -
怎么在QQ上设置颜文字?
1、颜文字的概...
2023年05月15日 -
如何解决手机听筒声音小问题
1. 检查手机...
2024年05月30日 -
VB语言控件的可视属性用法
VB语言中的控...
2023年07月21日 -
leetcode怎么计算最后一块石头的重量
计算最后一块石...
2023年05月26日