Map/Reduce
分布式计算的思想通俗来说
合久必分 分久必合
大数据处理原则—计算找数据
大体概括Map/reduce计算操作
1.数据传过来,计算程序分发
2.提前先对数据进行清洗去除掉脏数据
3.会提前进行一次小的聚合
4.将聚合之后的数据连同剩余的数据进行运输(shuffle运输)
这也是最影响效率最浪费时间的一步(传输需要走网络磁盘io)
5.在reduce端进行一个大合并,也就是最后一次合并
以上面这张图为例:
- 我们需要把文件的输入,会把文件分成细小的块儿发送到map
- 文件输入后,走到map时,会把数据发送到一个环型内存缓存区
- 环形内存缓冲区以百分百为例,会有百分之70的计算内存和百分之30的缓存,它会对发送过来的数据进行一个分类排序
- 分类排序之后会将数据写入到磁盘
- 写入到磁盘后,可以看上图磁盘合并上有三个分区,现在每个分区的数据都是同类型的,也是有序的
- 之后把数据中磁盘中拿出来,发送到Reduce中再次进行一个小的聚合
- 之后把所有的数据按照顺序排列出来进行输出
开始计算
1).寻找过程——磁盘
2).计算过程——内存
3).结果——磁盘
以上为自己理解得出的结论,如果有什么地方不对,还望各位可以评论,我会努力改正,谢谢大家。