MapReduce
Posted vowzhou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MapReduce相关的知识,希望对你有一定的参考价值。
Partitioner:
Partitioner的作用是决定Map Task产生的数据记录交给哪个Reduce Task处理。默认实现是:(key)mod R,其中R是Reduce Task个数。一般情况下,当需要按照key的一部分(不是全部,比如key的前三个字节)进行partition,或者按照key范围进行partition时,需要自定义Partitioner。
Combiner:
Combiner位于Map Task中,相当于local reducer,通常跟Reducer逻辑一样,作用是对Map Task数据进行局部汇总或者规约,以减少数据输出量。
数据倾斜:[hadoop 中数据倾斜会极大影响性能和效率。]
从另外角度看数据倾斜,其本质还是在单台节点在执行那一部分数据reduce任务的时候,由于数据量大,跑不动,造成任务卡住。若是这台节点机器内存够大,CPU、网络等资源充足,跑 80G 左右的数据量和跑10M 数据量所耗时间不是很大差距,那么也就不存在问题,
1. 数据频率倾斜——某一个区域的数据量要远远大于其他区域。
2. 数据大小倾斜——部分记录的大小远远大于平均值。
HDFS的体系结构,HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据。HDFS允许用户以文件的形式存储数据。从内部来看,文件被分成若干个数据块,而且这若干个数据块存放在一组DataNode上。NameNode执行文件系统的命名空间操作,比如打开、关闭、重命名文件或目录等,它也负责数据块到具体DataNode的映射。DataNode负责处理文件系统客户端的文件读写请求,并在NameNode的统一调度下进行数据块的创建、删除和复制工作。
以上是关于MapReduce的主要内容,如果未能解决你的问题,请参考以下文章
大数据框架之Hadoop:MapReduceMapReduce框架原理——数据清洗(ETL)