master/slave)阳3,早先的HDFS集群由一个控制节点和许多个数据节点组成。控制节点用来管理整个集群系统中的文件的元数据信息的存储和管理,通常集群中只有一台机器来充当控制节点,数据节点主要是用来存储文件中的数据,集群中可以有许多台机器来充当数据节点。控制节点和数据节点都是运行在廉价PC机上的普通软件。控制节点与数据节点采用心跳机制定时万方数据工程硕士专业学位论文进行通信。HDFS的架构如图2—1所示。 HDFS Architecture 图2-1 HDFS架构图 2.1.2Map/Reduce并行计算模型介绍n∞在程序开发过程中,一项复杂的工作通常可以被人们将其拆分为多个任务, 任务之间的关系有两种:一种是任务之间相互依赖,前后顺序是不能颠倒的,在这种情况下是不允许并行处理的:另一种是任务之间互不依赖,没有强制要求前后顺序;大多数的计算任务都是从属于后者。但是,计算工作所要输入的数据是海量的,并且处理的时间要在人们能接受范围内,该计算工作就必须让成千上万台机器去执行。怎样并发处理和怎样分布数据等相关问题就油然而生。MapReduce 编程模型就是为了解决这些问题而产生的。 MapReduce是一种新的分布式程序设计模型,它是谷歌实验室在2004年提出来的,主要用于海量数据集(大于1TB)进行并行处理。在谷歌公司内部, MapReduce的应用程序使用的非常广泛,其中包括分布grep、文档聚类、反向索引构建、web连接图反转、每个机器的词矢量、分布排序、web访问日志分析、机器学习、基于统计的机器翻译等等。值得关注的是,在MapReduce成功实现以后,它主要用来产生新的谷歌的整个索引,并取代旧的ad hoc程序去更新谷歌的索引,这样完全有力证明MapReduce有非常好的性能。 MapReduce这个名称来源于函数式编程模型中的两个核心操作:Map和 6 万方数据