MapReduce
李白星河
nlp算法工程师
展开
-
mapReduce之间的partition的作用详解
map/reduce之间的shuffle,partition,combiner过程的详解Shuffle的本意是洗牌、混乱的意思,类似于java中的Collections.shuffle(List)方法,它会随机地打乱参数list里的元素顺序。MapReduce中的Shuffle过程。所谓Shuffle过程可以大致的理解成:怎样把map task的输出结果有效地传送到reduce输入端。也可以这样...原创 2019-11-28 14:54:39 · 2041 阅读 · 1 评论 -
Mapreduce如何获取读取文件夹下文件的名字
需要注意的导包的时候导这两个包 import org.apache.hadoop.mapreduce.InputSplit; import org.apache.hadoop.mapreduce.lib.input.FileSplit;只需要获得文件的名字: InputSplit inputSplit=(InputSpl...原创 2019-11-18 15:21:31 · 353 阅读 · 1 评论 -
MapReduce优化(总(总体怎么调优),分(map怎么调优,ruduce怎么调优))
1、配置调优调优总的原则给shuffle过程尽量多提供内存空间,在map端,可以通过避免多次溢出写磁盘来获得最佳性能(相关配置io.sort.*,io.sort.mb),在reduce端,中间数据全部驻留在内存时,就能获得最佳性能,但是默认情况下,这是不可能发生的,因为一般情况所有内存都预留给reduce含函数(如需修改 需要配置mapred.inmem.merge.threshold,mapr...原创 2019-11-15 09:01:41 · 365 阅读 · 0 评论 -
MapTask和ReduceTask运行机制(详细介绍)
1、MapTask运行机制详解以及Map任务的并行度整个Map阶段流程大体如下图所示。简单概述:inputFile通过split被逻辑切分为多个split文件,通过Record按行读取内容给map(用户自己实现的)进行处理,数据被map处理结束之后交给OutputCollector收集器,对其结果key进行分区(默认使用hash分区),然后写入buffer,每个map task都有一个内存缓...原创 2019-11-14 21:16:56 · 920 阅读 · 1 评论 -
Partitioner的使用以及原理和规避误区(通俗易懂)
#Partitioner简介shuffle是通过分区partitioner 分配给Reduce的 一个Reducer对应一个记录文件Partitioner是shuffle的一部分partitioner执行时机:在mapper执行完成,Reducer还没有执行的时候,mapper的输出就是partitioner的输入 即<k2,v2>partitioner 分区主要是用来提高效率的 例...原创 2019-11-14 17:14:18 · 3523 阅读 · 1 评论 -
Mapreduce中Combiner的使用以及规避误区(简洁明了)
一、大数据会存在的两大瓶颈:1.网络带宽会受限制(MapReduce会用到的)如果我们有10亿个数据,Mapper会生成10亿个键值对在网络间进行传输,但如果我们只是对数据求最大值,那么很明显的Mapper只需要输出它所知道的最大值即可。这样做不仅可以减轻网络压力,同样也可以大幅度提高程序效率。2.磁盘IO受限制 二、Combiner的作用:Mapreduce中的Combiner就是为了...原创 2019-11-13 11:22:26 · 2956 阅读 · 1 评论 -
MapReduce中map的输出与ruduce输入的区别
1.map的输出Map<String, String> map1 = new HashMap<>();map1.put(“map1_key1”, “map_key11111”);map1.put(“map1_key2”, “map_key22222”);map1.put(“map1_key3”, “map_key33333”);key-value 的list形式...原创 2019-11-13 08:33:38 · 336 阅读 · 2 评论