栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

第二周 大数据学习笔记 2022年第11周

第二周 大数据学习笔记 2022年第11周

第二周 大数据学习笔记 2022年第11周 理解MapReduce的基本原理:

主要是以下几个步骤

Input - > Splitting - > Map - > Combine - > Shuffle/Sort - > Reduce - > output

先将文件进行分割后,进行 map 操作,后面进行 shuffle 操作,分为 map 端 shuffle 和 reduce端 shuffle。

map 输出结果放在缓冲区,当缓存区到达一定阈值时,将其中数据 spill (也就是溢写)到磁盘,然后进行 partition, sort, combine 操作,这样多次 spill 后,磁盘上就会有多个文件,merge 操作将这些文件合并成一个文件。

reduce 端 shuffle 从 map 节点拉取数据文件,如果在内存中放得下,就直接放在内存中,每个 map 对应一块数据,当内存占用量达到一定程度时,启动内存时 merge,把内存中的数据输出到磁盘的一个文件上如果在内存中放不下的话,就直接写到磁盘上。
一个 map 数据对应一个文件,当文件数量达到一定阀值时,开始启动磁盘文件 merge,把这些文件合并到一个文件中。最后,把内存中的文件和磁盘上的文件进行全局 merge,形成一个最终端文件,做为 reduce 的输入文件。
当然 merge过程中会进行 sort,combine 操作。

MapReduce中WordCount的处理过程:

1)将文件拆分成splits,每个文件为一个split,并将文件按行分割形成

2)将分割好的对交给用户定义的map方法进行处理,生成新的

3)得到map方法输出的对后,Mapper会将它们按照key值进行排序,并执行Combine过程,将key至相同value值累加,得到Mapper的最终输出结果

4)Reducer先对从Mapper接收的数据进行排序,再交由用户自定义的reduce方法进行处理,得到新的对,并作为WordCount的输出结果

主要学艺不精,还是得多回头看看老师当时用Java敲的WordCount代码

MapReduce使用combiner优化性能:

mapreduce优化:在map阶段先做一次本地聚合——Combine

机制的意义就在于使Map端输出更紧凑,使得写到本地磁盘和传给Reduce端的数据更少

Combine作用在Mapper的本地节点,Reducer作用在集群上。

ne作用在Mapper的本地节点,Reducer作用在集群上。

hive作用和优点

·Provides a simple & optimized model with less coding than MR (提供简单和优化的模型,编码少于MR)

​ 只需要写SQL,底层会自动转化为mapreduce

·HQL and SQL have similar syntax and high productivity (HQL和SQL具有类似的语法和高生产率)
都是基于SQL92标准
·Hive supports running on different computing frameworks (Hive支持在不同的计算框架上运行) mapreduce

​ Tez(比mapreduce的性能快了50倍)
·Hive supports ad hoc querying data on HDFS and Hbase (Hive支持在HDFS和Hbase上进行临时查询数据)
· Hive supports user-defined functions, scripts, customized format (Hive支持用户定义的函数,脚本和自定义格式)

提问:同样功能的代码是hive的运行效率快还是mapreduce快
答案:mapreduce快,因为hive是on mapreduce,还要再转一次。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/775804.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号