集群指的是将几台服务器集中在一起,实现同一业务。只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道;
分布式是指将不同的业务分布在不同的地方。一个程序或系统,只要运行在不同的机器上,就可以叫分布式,C/S架构也可以叫分布式。
云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络、服务器、存储器、应用软件和服务等)、这些资源能够被快速提供,只需投入很少的管理工作,或与服务器提供商进行很少的交互。
MapReduce:大规模并行计算解决方案,以key/value的分布式存储系统为基础,通过元数据集中存储、数据以chunk为单位分布存储和数据chunk冗余复制来保证其高可用性。面向分析型应用的NoSQL技术的代表。
包含三个部分:高度容错的分布式文件系统,并行编程模型和并行执行引擎。
并行编程模型的计算过程分为两个主要阶段,即Map阶段和Reduce阶段。
Map函数处理Key/Value对,产生一系列的中间Key/Value对。
Reduce函数合并所有具有相同Key值的中间Key/Value对,计算最终结果。
用户只需要编写Map函数和Reduce函数,MapReduce框架在大规模集群上自动调度执行编写好的程序,扩展性、容错性等问题由系统解决,用户不必关心。