【整理学习Hadoop】Hadoop学习基础之一:服务器集群技术

**        服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。**

 

    集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。

 

目的:

**1 **提高性能

    一些计算密集型应用,如:天气预报、核试验模拟等,需要计算机要有很强的运算处理能力,现有的技术,即使普通的大型机其计算也很难胜任。这时,一般都使用计算机集群技术,集中几十台甚至上百台计算机的运算能力来满足要求。提高处理性能一直是集群技术研究的一个重要目标之一。

**2 **降低成本

    通常一套较好的集群配置,其软硬件开销要超过100000美元。但与价值上百万美元的专用超级计算机相比已属相当便宜。在达到同样性能的条件下,采用计算机集群比采用同等运算能力的大型计算机具有更高的性价比。

**3 **提高可扩展性

    用户若想扩展系统能力,不得不购买更高性能的服务器,才能获得额外所需的CPU 和存储器。如果采用集群技术,则只需要将新的服务器加入集群中即可,对于客户来看,服务无论从连续性还是性能上都几乎没有变化,好像系统在不知不觉中完成了升级。

**4 **增强可靠性

    集群技术使系统在故障发生时仍可以继续工作,将系统停运时间减到最小。集群系统在提高系统的可靠性的同时,也大大减小了故障损失。

优势:

 

    一、集群系统可解决所有的服务器硬件故障,当某一台服务器出现任何故障,如:硬盘、内存、CPU、主板、I/O板以及电源故障,运行在这台服务器上的应用就会切换到其它的服务器上。

    二、集群系统可解决软件系统问题,我们知道,在计算机系统中,用户所使用的是应用程序和数据,而应用系统运行在操作系统之上,操作系统又运行在服务器上。这样,只要应用系统、操作系统、服务器三者中的任何一个出现故障,系统实际上就停止了向客户端提供服务,比如我们常见的软件死机,就是这种情况之一,尽管服务器硬件完好,但服务器仍旧不能向客户端提供服务。而集群的最大优势在于对故障服务器的监控是基于应用的,也就是说,只要服务器的应用停止运行,其它的相关服务器就会接管这个应用,而不必理会应用停止运行的原因是什么。

    三、集群系统可以解决人为失误造成的应用系统停止工作的情况,例如,当管理员对某台服务器操作不当导致该服务器停机,因此运行在这台服务器上的应用系统也就停止了运行。由于集群是对应用进行监控,因此其它的相关服务器就会接管这个应用。

****        在集群系统中,所有的计算机拥有一个共同的名称,集群内任一系统上运行的服务可被所有的网络客户所使用。集群必须可以协调管理各分离组件的错误和失败,并可透明的向集群中加入组件。用户的公共数据被放置到了共享的磁盘柜中,应用程序被安装到了所有的服务器上,也就是说,在集群上运行的应用需要在所有的服务器上安装一遍。当集群系统在正常运转时,应用只在一台服务器上运行,并且只有这台服务器才能操纵该应用在共享磁盘柜上的数据区,其它的服务器监控这台服务器,只要这台服务器上的应用停止运行(无论是硬件损坏、操作系统死机、应用软件故障,还是人为误操作造成的应用停止运行),其它的服务器就会接管这台服务器所运行的应用,并将共享磁盘柜上的相应数据区接管过来。

服务器集群技术的定义

    网络技术的飞速发展,给网络带宽和服务器性能带来了巨大的挑战,基于互联网的应用系统越来越多的瓶颈出现在服务器端,这就对服务器提出了更高的要求。集群是一组协同工作的服务器集合,用来提供比单一服务更稳定、更高效、更具扩展性的服务平台。在外界来看,集群就是一个独立的服务实体,但实际上,集群内部有两个或两个以上的服务实体在协调、配合完成一系列复杂的工作。

集群一般由两个或两个以上的服务器组建而成,每个服务器被称为一个集群节点,集群节点之间可以相互通信。通信方式有两种,一种是基于RS232线的心跳监控,另一种是一块单独的网卡

来跑心跳。因而,集群具有节点服务状态监控功能,同时还必须具有服务实体扩展功能,可以灵活地增加和剔除某个服务实体。

    在集群中,同样的服务可以由多个服务实体提供。因此,当一个节点出现故障时,集群的另一个节点,可以自动接管故障节点的资源,从而保证服务持久、不间断地运行。因而集群具有故障

自动转移功能。

    一个集群系统必须拥有共享的数据存储,因为集群对外提供的服务是一致的,任何一个集群节点运行一个应用时,应用的数据集中存储在节点共享空间内,而每个节点的操作系统上仅运行应用的服务,同时存储应用程序文件。

综上所述,构建一个集群系统至少需要两台服务器,同时还需要有串口线、集群软件和共享存储设备等。

服务器集群技术的特点和功能

高可应用性与可扩展性

1.高可应用性

    对于一些实时性很强的应用系统,必须保持服务的24小时不间断运行,而由于软件、硬件、网络和人为等各种原因,单一服务运行环境很难达到这种要求,此时构建一个服务器集群系统是个不错的选择。构建集群的一个最大的优点是集群具有高可用性,在服务出现故障时,服务器集群系统可以自动将服务从故障节点切换到另一个备用节点,从而提供不间断性服务,保证了业务的持续运行。

2.可扩展性

    随着业务量的加大,现有的集群服务实体不能,满足需求时,可以向此集群中动态加入一个或多个服务节点,从而满足应用的需要,增强集群的整体性能,这就是集群的可扩展性。

负载均衡与错误恢复

1.负载均衡

    服务器集群系统最大的特点是可以灵活、有效地分担系统负载,通过集群自定义的负载分担策略,将客户端的访问分配到下面的各个节点。例如,可以定义轮询分配策略,将请求平均分配到各个服务节点,还可以定义最小负载分配策略,当一个请求进行时,服务器集群系统判断哪个服务器节点比较清闲,就将此请求分发到这个节点。

2.错误恢复

    当一个任务在一个节点上好没有完成时,由于某种原因,执行失败,此时,另一个服务节点应该能接着完成此任务,这就是服务器集群提供的错误恢复功能,通过错误的重定向,保证了每个执行任务都能有效完成。

心跳监测与漂移IP

1.心跳监测

    为了能实现负载均衡、提供高可用服务和执行错误恢复,服务器集群系统提供了心跳监测技术。心跳监测是通过心跳线实现的,可以做心跳线的设备有RS 232 串口线,也可以用独立的一块网卡来跑心跳,还可以是共享磁盘阵列等。心跳线的数量应该为服务器集群节点数减1。需要注意的是,如果通过网卡来做心跳的话,每个节点需要两块网卡,其中,一块作为私有网络直接连接到对方及其相应的网卡,用来监测对方心跳;另一块网卡连接到公共网络对外提供服务,同时心跳网卡和服务网卡的IP地址尽量不要在一个网段内。心跳监控的效率直接影响故障切换时间的长短,服务器集群系统正是通过心跳技术保持着节点的内部有效通信。

2.漂移IP地址

    在服务器集群系统中,除了每个服务节点自身的真实IP地址外,还存在一个漂移IP地址。为什么说是漂移IP呢?因为这个IP地址并不固定,例如在两个节点的双机热备中,正常状态下,合格漂移IP位于主节点上,当主节点出现故障后,漂移IP地址自动切换到备用节点上。因此,为了保证服务器的不间断性。在集群系统,对外提供的服务IP一定要是这个漂移IP地址,虽然节点本身的IP也能对外提供服务,但是当此节点失效后,服务切换到了另一个节点,服务IP仍然是故障节点的IP地址,此时服务就随之中断了。

服务器集群技术的分类

高可用集群

1.高可用的概念

    高可用集群的英文全称是High Availability,简称HA cluster。高可用的含义是最大限度地可以使用。从集群的名字上可以看出,此类集群实现的功能是保障用户的应用程序持久、不间断地提供服务。

当应用程序出现故障,或者系统硬件、网络出现故障时,应用可以自动、快速地从一个节点切换到另一个节点,从而保证应用持续、不间断地对外提供服务,这就是高可用集群实现的功能。

2.常见的HA Cluster

    常说的双机热备、双机互备等都属于高可用集群的范畴,这类集群一般都由两个或两个以上节点组成。典型的双机热备结构如图15-1所示。

    双机热备是最简单的应用模式,即经常说的active/standby方式。它使用两台服务器,一台作为主服务器,运行应用程序对外提供服务;另一台作为备机,安装和主服务器一样的应用程序,但是并不启动服务,处于待机状态。主机和备机之间通过心跳技术互相检查,监控的资源可以是网络、操作系统,也可以是服务,用户可以根据自己的需要,选择需要监控的资源。当备份监控到主机的某个资源出现故障时,根据预先设定好的策略,首先将IP切换过来,然后将应用程序服务也接过过来,接着就由备机对外提供服务。切换过程时间非常短,用户根本感觉不到程序出了问题,而且还进行了切换,从而保障了应用程序持久、不间断地服务。

    双机互备是在双机热备的基础上,两个相互独立的应用在两个机器上同时运行,互为主备,即两台服务器是主机也是备机。当任何一个应用出现故障,另一台服务器都能在短时间内将故障机器的应用接过过来,从而保障了服务的持续、无间断运行。双机互备的好处是节省了设备资源,两个应用的双机热备至少需要4台服务器,而双机互备仅需要两台服务器即可完成高可用集群功能。但双机互备也有自身的缺点:在某个节点故障切换后,另一个节点上就同时运行了两个应用的服务,有可能出现负载过大的情况。多机互备是双机热备的技术升级,通过多台及其组成一个集群,可以在多台机器之间设置灵活地接管策略。

注意

    高可用集群不能保证应用程序数据的安全性,他仅仅解决的是对外提供持久不间断的服务,把因软件、硬件、网络和人为因素造成的故障而对应用造成的影响降低到最低程序。

3.高可用集群软件

    高可用集群一般是通过高可用软件来实现的。在Linux下常用的高可用软件有HearbeatHA,Red Hat提供的RHCS,商业软件ROSE,keepalived等。

负载均衡集群

    负载均衡集群也是由两台或者两台以上的服务器组成。分为前端负载调度和后端服务两个部分。负载调度部分负载把客户端的请求按照不同的策略分配给后端服务节点,而后端节点是真正提供营养程序服务的部分。与HA Cluster不同的是,负载均衡集群中,所有的后端节点都处于活动动态,它们都对外提供服务,分摊系统的工作负载。

    负载均衡集群可以把一个高负荷的应用分散到多个节点共同完成,适用于业务繁忙、大负荷访问的应用系统。但是它也有不足的地方;当一个节点出现故障时,前端调度系统并不知道此节点已经不能提供服务,仍然会把客户端的请求调度到故障节点上来,这样访问就会失败。为了解决这个问题,负载调度系统一般都引入了节点监控系统。

    节点监控系统位于前端负载调度机上,负责监控下面的服务节点。当某个节点出现故障后,节点监控系统会自动将故障节点从集群中剔除;当此节点恢复正常后,节点监控系统又会自动将其加入集群中,而这一切,对用户来说是完全透明的。图15-2显示负载均衡集群的基本结构。

负载均衡集群可以通过软件方式实现,也可以由硬件设备来完成。

科学计算集群

    高性能计算集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大计算能力,包括数值计算和数据处理,并且倾向于追求综合性能。HPG与超级计算类似,但是又有不同,计算速度是超级计算追求的第一目标。最快的速度、最大的存储、最庞大的体积、最昂贵的价格代表了超级计算的特点。随着人们对计算速度需求的提高,超级计算也应用到各个领域,对超级计算追求单一计算速度指标转变为追求高性能的综合指标,即高性能计算。

HPC的应用领域非常广泛,典型应用有成么科学研究、基因测试对比、数据挖掘应用、石油和天然气勘探、图像呈现等。

参见:http://server.zzidc.com/fwqjs/322.html

代码交流 2021