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的统一调度下进行数据块的创建、删除和复制工作。

回首间---我错过了那片星海
原文地址:https://www.cnblogs.com/Vowzhou/p/10455555.html