• MapReduce——独特的思维


            很高兴来到这个有意思的地方--博客论坛,当然这也是我的第一篇博客。根据网上关于MapReduce的一些翻译及他人的解释,我对于MapReduce有了一些个人的认识和见解,想在这里与大家分享和交流一下。MapReduce简单来说,就是在超大计算机集群组上进行的简单数据处理模式。

            首先,MapReduce产生的原因在于,谷歌每天甚至每秒所产生的数据过于庞大,而又必须在短时间内得到解决和处理。在传统计算机设计上,要想在短时间内处理大量数据,就必须拥有高性能高运算能力的计算机设备,并且随着计算机的大规模发展和普及,对于其计算要求也必将是逐渐提高的,那么就意味着为实现提高性能和计算能力以及维护和运行将投入极高的费用,同时这也将面临着高风险的设备故障问题,那么这样的投入和做法将是不现实的。在这样的背景下,MApReduce应运而生,凭借着独特的构造模式既解决了大数据处理过程中数据量庞大的问题,又拥有非比寻常的容错能力,而且所需的硬件设备并不需要极高的成本和维护运行费用,其主要贡献在于利用简单有效的接口设置来实现自动式的并行化和大规模分布式计算,并借助这个接口的实现在大量的普通PC机上实现高性能运算。

            虽然很多技术性问题我还没有深入了解,但是在一定程度上其思维模式还是十分明显易懂的。俗话说,三个臭皮匠顶个诸葛亮,毫不夸张地说MapReduce的应用正是印证了这句话的精髓。这个技术大致过程是这个样子的(如有误解和盲区,还请见谅),MapReduce库用户通过两个函数来表达这两个计算map和Reduce,用户所定义的map函数会根据用户输入的数据对,相应地产生中间key/value对集,再根据集群中的master所发布的指令集中起来,这时MapReduce库就会将所有的中间相同的key和value对集聚合在一起,再由master发布指令将这些对集传递给Reduce,而reduce函数的作用正是将接收到的中间key/value对集合并为小的value,由于合并的value集是相同的,那么只需要产生的输出值也应该是相同的,简单来说,就是将相同计算合并处理,避免重复计算,所以在reduce运算过程中我们每次只需要才产生和调用0或1个输出value,通过迭代器将中间value提供给用户使用的reduce函数即可,也就相应地可以根据调整内存来控制value列表的大小。通俗来说,MapReduce的工作原理实际上就是将大量的数据先通过分类整理,简化合并后计算,再通过一个主导计算机将需要的运算分配给多个普通计算机进行处理,既节省了传送大量数据的时间,也减小了对计算机性能的要求和执行计算的时间,再对返回数据进行分析然后反馈给用户。这是我通过查询网上关于MapRduce的原文翻译和相关解释,结合自己的理解进行的分析,非常感谢大牛们的帮助。

           云计算技术实际上是一种对于资源的整合与运用,在某种意义上就是对于资源的有效利用,减少不必要的浪费和重复计算的过程。在我的生活中云计算的应用已经相当广泛,就我本阶段而言,云计算的优点可能还不够明显,用的最多的还是网络云盘的技术吧。其实在很大程度上网络上的资源实际上都是一种简化运算和节省空间的模式存在的,例如一部电影资源保存在云盘中,实际上保存的只是一个地址,实际意义上的电影资源只有几份(其中几份还是备份,避免丢失数据),如果在传统意义上来说,要看一部电影需要一部影碟,那么N个想要看一部电影就需要N份影碟,但实际上一部电影一个人也就会只看几次而已。而影碟的制作需要成本,并且在使用几次后便没有再次使用的意义,在某种程度上是一种浪费。云计算的使用和普及,基本上解决了这个问题,相当于一部影片只需要一份(不被损坏的情况下),可传输给N个人进行观看,同时可以多次使用,存储和使用都十分方便和快捷,还省去了物品转借过程中的损耗与时间损耗问题。云计算技术远不仅此而已,在我的想法中,我认为所有可以可以通过网络进行分享的东西都是可以利用网络来进行整合和有效利用的,因此这也将在一定程度上减少了资源的浪费和时间的浪费。当然,我也不认为所有的事物都是可以通过网络的形式来实现的,比如说阅读吧,在很大程度上我认为网络阅读要比纸质阅读的使用感差很多,一是电子产品的使用对于眼睛的疲劳感更强一些,二是纸质阅读给人的审美感和使用感更加柔和,似乎这又进入了美学的范畴。这可能跟我个人习惯有关吧,但是我坚信虚拟的世界必须得有真实的世界作为支撑,否则人将失去审美的能力甚至失去创造的能力。

           我的看法就说到这里吧,这是我的一些想法和看法。如果有什么不对或者不一样的看法,希望大家提出来多多指教一下,谢谢大家!

            

            

  • 相关阅读:
    Vue 错误:Avoid mutating a prop directly
    插入排序
    Vue2.0实现ie的兼容
    mysql8.0遇到删除外键的错误
    c# 根据父节点id,找到所有的子节点数据
    SSH原理与运用(一):远程登录
    Java线程:Timer和TimerTask
    linux系统判断是否重启、关机、查询登录诊断分析简介
    CS架构和BS架构的区别
    yum提示another app is currently holding the yum lock;waiting for it to exit
  • 原文地址:https://www.cnblogs.com/20985hm/p/9954827.html
Copyright © 2020-2023  润新知