集群技术(来自百度百科)
集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是
集群系统中的核心技术。本文就
集群系统的定义、发展趋势、任务调度等问题进行了简要论述。
根据典型的集群
体系结构,集群中涉及到的关键技术可以归属于四个层次:
(4)
应用层:并行程序开发环境、串行应用、并行应用等。
集群的一个常用用途就是在一个高流量的网站中实现
负载均衡
。一个网页请求被送到“管理者”服务器,然后此服务器决定此请求由几个相同Web服务器中的哪一个进行处理。这种Web Farm(根据配置有时候被这样称呼)将能够提升通信量和处理速度。
为此,可以这么理解集群:集群是由一头领头公牛加一堆牛组成的系统。领头公牛负责管理整个系统,而其他的牛负责在公牛安排下吃草。
Hadoop与集群
Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。
对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve。
- 一个HDFS集群是由一个NameNode(领头公牛)和若干个DataNode组成的(其他小牛)。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。
- MapReduce框架是由一个单独运行在主节点上的JobTracker(领头公牛)和运行在每个集群从节点的TaskTracker(其他小牛)共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。
HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。