- 博客(7)
- 资源 (5)
- 收藏
- 关注
原创 MapReduce框架-shuffle/map/reduce阶段工作梳理
mapreduce总结梳理:1.shufffle阶段:溢写->分区->排序->磁盘文件->合并->排序->磁盘文件–>copy->合并->排序spill->partition->sort->merge->sort->copy->merge->sortshuffle阶段进行了2次合并,3次排序。第一次排序:溢出后对数据进行排序。默认使用的快速排序。第二次排序:是对map的多个溢写分区文件合并以后进行排
2020-09-19 00:02:26 384
原创 Mapreduce框架-shuffle
1.shuffle简介shuffle的正常意思是洗牌或弄乱。它只代表reduce task获取map task的输出的过程,也可以理解为从map输出到reduce输入的整个过程。shuffle是MR的核心,也有把它称为奇迹发生的地方。这样MR的过程可以简化为下图将MR简化过程图进行细化,就有了那张经典流程图2.shuffle过程包含的阶段把map阶段完成数据的程序处理到reduce阶段开始执行数据处理任务的阶段叫shuffle,奇迹发生的地方。(1)溢写:map的数据写入到环形缓冲区,到达阈值
2020-09-18 23:55:48 584
原创 MapReduce框架-combiner
Combiner1.对combiner的理解combiner其实属于优化方案,由于带宽限制,应该尽量map和reduce之间的数据传输数量。它在Map端把同一个key的键值对合并在一起并计算,计算规则与reduce一致,所以combiner也可以看作特殊的Reducer。执行combiner操作要求开发者必须在程序中设置了combiner(程序中通过job.setCombinerClass(myCombine.class)自定义combiner操作)2.哪里使用combiner?1,map输出数据
2020-09-18 23:47:12 727
原创 Mapreduce框架-reduceTask工作原理
ReduceTask的工作原理1.reduceTask获取map阶段的输出-copy阶段两点说明:(1)map任务和reduce任务不一定在同一台机器上。(2)map任务和reduce任务不是只有一个。可能有多个map任务和多个reduce任务同时执行。1.reduce需要通过内部通信将map任务的输出拷贝到reduce。2.需要将所有的map任务的输出拷贝到不同的reduce。一个reduce处理一个分区的所有map任务输出。2.reduceTask获取map阶段的输出-合并和排序将ma
2020-09-18 23:39:30 560
原创 Mapreduce框架-MapTask工作原理
MapTask的工作原理1 map文件切割splitsize的大小。分片是按照splitsize的大小进行的,默认情况下,splitsize的大小等同于hdfs的block大小。但可以通过参数调节。splitsize=Math.max(minSize,Math.min(maxSize,blockSize))其中:mapreduce配置文件配置。minSize =mapreduce.input.fileinputformat.split.minsize //默认配置0maxSize = mapre
2020-09-18 23:36:36 424
原创 Mapreduce-序列化
1.hadoop序列化的必要性传统的计算机系统通过I/O操作与外界进行交流, Hadoop 的I/O由传统的I/O系统发展而来,但又有些不同, Hadoop 需要处理 P、T 级别的数据,所以在org.apache.hadoop.io包中包含了一些面向海量数据处理的基本输人输出工具。Mapreduce程序中Map和Reduce的输入输出的key-value都是序列化数据类型。2.序列化概念对象的序列化(Serialization)用于将对象编码成一个字节流,以及从字节流中重新构建对象。"将一个对象编
2020-09-18 23:27:06 372
ubuntu-16.04.4-desktop-amd64镜像文件.txt
2020-05-13
Hbase框架原理和开发指导-基础篇.docx
2020-04-27
Ubuntu16.04下Hbase集群模式的本地安装与配置.docx
2020-04-27
ubantu安装hadoop指导文档.docx
2020-02-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人