分享一下我总结的map reduce吧
找了很多学习教材 一看都是30个小时左右的 虽然很详细,感觉很浪费时间,多余用不到的知识只能在approach中成为负担。
在我心目中 map reduce这个概念应该是10分钟左右能说明清楚的,那么我来讲一下我都学到了什么。
mapreduce 6个步骤
- input 输入
- split 切分
- map 规划
- shuffle 整理
- reduce 优化 缩减(感觉是这个意思?)
- finalize 结果化
先上图!
图片是来自youtube的一位谷歌大佬。 https://www.youtube.com/watch?v=Rz8JCS9TfOQ
本次学习也主要围绕大佬的视频讲解
input 输入
在工作中,我们可能遇到各种不同的数据。
- 结构化
- string char int, 还有自定义结构 在c#中的class。
- 半结构化
- json xml 这种用字符串定义的结构。 key value形式的。
- 非结构化
- 类似于 file 视频 图片 blob 这种不在定义内的结构。
我们会遇到各种各样的input,但是其中的重点是把不同的input确定形式并有效的整理好,带入我们的大数据处理 作为input。
split 切分
首先mapreduce是在大数据中,对于如何处理大量数据的一个概念。
当处理一个非常大的事件的时候,我们的第一反应也是需要更多的人手。
这里mapreduce的第一个概念 就是把数据进行切分,分成不同的分量,交给worker去处理。
- worker -> 虚拟机或者处理器。
根据自己的现有资源,将文件拆分成份,给不同的处理器进行处理,平坦压力。
例. 一个worker每秒可以处理5g数据, input数据大小为100。
这里我们可以用20个worker 1秒解决,也可以让10个worker 2秒处理完。
map 定义规划
每个worker拿到数据后,进行单独的整理规划,根据不同的要求进行整理,然后整合。
例. 5g的图片,里面有 人物,蔬菜,水果,动物,等等不同的图片。
进行整理分类。