MapReduce入门
了解MapReduce
目前企业中基本摒弃了MR,MR是AVA代码实现的,相对复杂
目前企业中多使用spark进行开发,但是面试时会问到MR
MR是大数据的第一个大数据框架,学习其他框架是是一个参照
MR计算基于磁盘的,spark的计算基于内存的框架,较MR的执行效率要高的多
-
MapReduce 是基于Map和Reduce两个函数
Map:映射 元素的个数
x --> (x,1)
y --> (y,1)
z --> (z,1)
x --> (x,1)Reduce:规约
x,2
y,1
z,1
相当于mysql:table(t)
name value
x 1
y 1
z 1
x 1
select name ,sum(value) from t group by name ;
MapReduce架构
容器:container on nodemanager节点上的单独的进程,是一个虚拟的感念
将一定大小的内存和CPU vcore组成的最小单元,是运行计算任务task的。
是Yarn的资源抽象的描述
一个block数据是128M
一个容器128M 需要1个container
一个容器32M 需要4个container
- vcore 虚拟core
YARN中目前的CPU被划分成虚拟CPU(CPU virtual Core),
这里的虚拟CPU是YARN自己引入的概念,
初衷是,考虑到不同节点的CPU性能可能不同,
每个CPU具有的计算能力也是不一样的,
比如某个物理CPU的计算能力可能是另外一个物理CPU的2倍,
这时候,你可以通过为第一个物理CPU多配置几个虚拟CPU弥补这种差异。
用户提交作业时,可以指定每个任务需要的虚拟CPU个数。
为充分发挥服务器性能,提高task执行效率,将物理core和虚拟core的比例设为1:2