![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mapreduce
文章平均质量分 76
amingo_ss
10软件开发工作经验,曾就职于神州数码,中国通信服务,高校兼职讲师。参与交付中国移动,中国联通和中国电信运营支撑系统项目,以及10几个海外国家电信系统开发和交付,对spring生态和hadoop大数据生态技术有深刻理解。
展开
-
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 · 358 阅读 · 0 评论 -
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 · 579 阅读 · 0 评论 -
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 · 699 阅读 · 0 评论 -
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 · 534 阅读 · 0 评论 -
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 · 412 阅读 · 0 评论 -
MapReduce框架-完整工程流程
原创 2020-09-18 23:34:00 · 98 阅读 · 0 评论 -
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 · 367 阅读 · 0 评论 -
MapReduce-入门程序wordcount开发详细指导
WordCount入门程序目录WordCount入门程序1.过程分析2.创建maven项目2.1 log4j配置文件2.2 pom.xml3.程序开发3.1 Map阶段程序3.2 Reduce阶段程序3.3 Driver 程序4.运行程序4.1本地运行4.2 集群运行1.过程分析(1)mapreduce阶段(2)job运行阶段在job运行时,需要知道下面这些信息(1)Job任务执行的类(2)map运行需要的输入文件路径(3)reduce运行输出的文件保存路径(4)job运行的map类和原创 2020-05-31 10:57:42 · 216 阅读 · 0 评论