最近学习了Hadoop,做一些小的总结:
hadoop 两大核心
1.hdfs : 用于存储数据
1.1 分块 block 默认128mb,
1.2 不足128mb的数据,只占其本身的大小,128mb就是是一个逻辑概念
1.3 block会默认复制三份,用来防止 数据丢失(冗余备份)。
1.4 hdfs不适用存大量小文件,元数据信息过多导致NameNode压力增加
1.5NameNode:管理dataNode 读写数据
负责元数据管理,当client端 要读取或者写入数据,会首先跟NN通信,然后NN指定你去某个dataNode上去读写数据。
dataNode:它负责管理该物理机上的存储内容,包括读写。
2.mapreduce: 计算数据
3.hadoop的核心是mapreduce框架,shuffle 又是Mapreduce的核心,map 到 reduce
mapper负责将相同的key,发到指定reduce中。reduce负责后面的逻辑计算。
4.mapper的进程数量 : 这个跟inputsplit有关
reducer的进程数量:有多少个partition 就有多少个redcuer
5.如何写mr
a.
ma