一位教授的笔记本电脑丢了,教授声明笔记本可以给你,里面的数据留下。后面花费精力终于将其找回,却发现里面的数据都丢了,后千辛万苦终于恢复了已被格式化的数据。如果一快报上所说,“在现今商业社会,最贵的东西不是房子,不是设备,而是你的数据。”
就日常生活而言,逛淘宝,用的时间越久,发现推荐越合你意。今日头条,刷着刷着就像上了瘾一样停不下来,商场的布局,本来只是想逛一逛发现出来的时候不知不觉提了一大袋东西,出现的恰合你需的广告……人是复杂的个体,要准确猜出你的喜好,掌握你的需求,这些都是需要基于庞大的数据处理才能做到的.
这是一个大数据时代,就日常生活,一个人一整天的活动,干了些什么事,每件事从一天二十四小时里分配了多少时间,每件事的具体细节,细化到分分秒秒就已经是一笔巨大的数据量了,中国14亿人口,两者相乘那无疑是一个不可企及的天文数字了。如何处理这批数据是一个难题.
Google在2003年和2004年提出一篇论文,面向大数据的并行处理的框架模型--MapReduce.
单个计算机无论再好的设备处理能力终究有限,而MapReduce通过简单的接口来实现自动的并行化和大规模的分布式计算,在大量普通的PC机上实现高性能运算,他可以很简单粗暴的通过不断增加pc机数目来提高性能.将此难题迎刃而解,同时促进了大数据时代的到来
MapReduce的主要思想概括说来就是四个字,”化整为零”,通过Map(映射)和Reduce(规约)来实现.
面对一个复杂的问题,将其分解成若干个map任务和reduce任务,一个map任务即所一个复杂问题分解的一个小问题,reduce任务即将所有已解决的map任务总结汇总最后得出该复杂问题的答案.而这些一个任务的承担者即是一台普通的pc机,叫他worker,执行map任务的叫map worker,当然执行reduce任务的就叫reduce worker了.
那么这些任务由谁来分配?也是这些pc机中的一台,他叫做master,他的任务就像他的名字一样,解决这个问题不是他的事儿,他负责分配任务下去,同时管理好这些这些map worker和reduce worker,每一个worker的详细信息都在他的数据内.
由于一个问题是由成百上千的机器集群来解决的,如果其中一台机器故障怎么办?
Worker故障就由master再集群中再选一个空闲状态的机器出来代替他.
Master故障就由worker再选举一个.
如果这里面有个worker处理效率奇低(落伍者),拖慢了整个任务进程怎么办?办法也很直接,在快结束的时候,master调用备用(backup)的任务进程来处理还在进行中的任务,backup和落伍者一起执行,无论哪个先执行完了,这个任务在master那儿都算完成了.
MapReduce的思想不仅在本文开头所说的一系列中应用,它已渗透到日常生活和各个领域.
网友评论