CN102638372B - 一种分布式集群系统及其实现方法 - Google Patents
一种分布式集群系统及其实现方法 Download PDFInfo
- Publication number
- CN102638372B CN102638372B CN201210113460.6A CN201210113460A CN102638372B CN 102638372 B CN102638372 B CN 102638372B CN 201210113460 A CN201210113460 A CN 201210113460A CN 102638372 B CN102638372 B CN 102638372B
- Authority
- CN
- China
- Prior art keywords
- computing node
- functional module
- running state
- state data
- http request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000013515 script Methods 0.000 claims description 56
- 238000012545 processing Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 7
- 238000012360 testing method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种分布式集群系统及其实现方法,涉及计算机集群技术领域。本发明公开的系统包括部署在管理节点上的管理端功能模块,以及部署在各计算节点上的代理端功能模块,其中:管理端功能模块,根据用户指令向各代理端功能模块发送用于获取计算节点的运行状态数据的http请求,以及接收各代理端功能模块返回的运行状态数据,对接收到的运行状态数据进行处理显示;代理端功能模块,接收http请求,根据所收到的http请求读取本计算节点的运行状态数据,并将读取的运行状态数据返回给管理端功能模块。本发明还公开了一种分布式集群系统的实现方法。本申请技术方案具有开发部署速度快,可扩展性强的优点。
Description
技术领域
本发明涉及计算机集群技术领域,具体涉及一种分布式集群系统及其实现方法。
背景技术
目前的高性能计算集群规模都比较大,一个集群中包含上千个计算节点,在对这些计算节点管理和监控的过程中,需要通过分布式程序统一给这些节点发送请求,收集返回数据。
传统的分布式系统大多采用java,C等语言开发,管理端程序和代理端程序作为单独的进程运行在节点的操作系统中。这种方式开发和测试的时间较长,例如,中等规模的程序需要几个月的时间。因此,对于一些比较紧急的需求来说,目前的分布式系统在时间上是无法满足的。并且,传统的公布式系统中程序作为单独的进程运行在各节点上,势必占用计算节点的系统资源,降低高性能计算的效率。另外,传统的公布式系统的扩展性也很差,如果需要在程序中添加新的功能,则需要对程序进行修改和重新编译,编译完成后需要在集群中重新部署新的程序。可见,整个扩展过程复杂,而且耗时。不能满足快速扩展功能的需求。
发明内容
本发明所要解决的技术问题是,提供一种分布式集群系统及其实现方法,以解决传统的公布式系统开发测试时间过长的问题。
为了解决上述技术问题,本发明公开了一种分布式集群系统,包括一个部署在管理节点上的管理端功能模块,以及部署在各计算节点上的代理端功能模块,其中:
所述管理端功能模块,根据用户指令向各代理端功能模块发送用于获取计算节点的运行状态数据的http请求,以及接收各代理端功能模块返回的运行状态数据,对接收到的运行状态数据进行处理和显示;
所述代理端功能模块,接收所述管理端功能模块发送的http请求,根据所收到的http请求读取本计算节点的运行状态数据,并将读取的运行状态数据返回给所述管理端功能模块。
较佳地,上述系统中,所述http请求中包含有所要获取的计算节点的url,以及所要获取的计算节点的运行状态数据。
较佳地,上述系统中,所述管理端功能模块由shell脚本实现。
较佳地,上述系统中,所述代理端功能模块,由部署在计算节点的web服务器httpd中一组cgi脚本实现。
较佳地,上述系统中,其特征在于,所述代理端功能模块,由部署在计算节点的web服务器httpd中一组cgi脚本实现指:
将所述cgi脚本保存在管理节点的共享目录中,计算节点的web服务器httpd通过共享服务调用所述cgi脚本以实现所述代理端功能模块的操作。
本发明还公开了一种分布式集群系统的实现方法,包括:
管理节点根据用户指令向各计算节点发送用于获取计算节点的运行状态数据的http请求;
接收到所述http请求的计算节点,根据所收到的http请求读取本计算节点的运行状态数据,并将读取的运行状态数据返回给所述管理节点;
所述管理节点收集各计算节点返回的运行状态数据,对收到的运行状态数据进行处理并显示给集群用户。
较佳地,上述方法中,所述http请求中包含有所要获取的计算节点的url,以及所要获取的计算节点的运行状态数据。
较佳地,上述方法还包括,在所述管理节点上部署一管理端功能模块,由该管理端功能模块向各计算节点发送用于获取各计算节点的运行状态数据的http请求,其中,所述管理端功能模块采用shell脚本实现。
较佳地,上述方法还包括,在各计算节点上部署一代理端功能模块,由该代理端功能模块接收所述http请求,根据所收到的http请求读取本计算节点的运行状态数据,并将读取的运行状态数据返回给所述管理节点,其中,该代理端功能模块由部署在计算节点的web服务器httpd中一组cgi脚本实现。
较佳地,上述方法中,所述代理端功能模块由部署在计算节点的web服务器httpd中一组cgi脚本实现指:
将所述cgi脚本保存在管理节点的共享目录中,计算节点的web服务器httpd通过共享服务调用所述cgi脚本以实现所述代理端功能模块的操作。
本申请技术方案使可以在集群系统中快速部署管理端程序和代理端程序,并通过集群的管理节点对各个计算节点进行管理和监控,具有开发部署速度快,可扩展性强的优点,并针对高性能计算集群的监控和管理方面提高了工作效率。
附图说明
图1为本实施例提供的分布式集群系统的物理拓扑示意图;
图2为本实施例中实现的集群系统的测试结果图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文将结合附图对本发明技术方案作进一步详细说明。需要说明的是,在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
实施例1
本案申请人考虑到,可以利用Linux系统自带的web服务器httpd,编写cgi脚本,并将脚本部署到各计算节点的web服务器中来构建分布式程序。这样,程序运行过程中,通过管理节点向各计算节点发送http(超文本传送协议)请求,以调用各计算节点cgi脚本,然后管理节点收集并汇总各计算节点的数据即可。此种方案与传统搭建分布式系统的方式相比,实现快速,程序稳定,调试简单等特点。适用于需要快速搭建分布式系统的情况。
基于上述思想,本实施例提供一种分布式集群系统,该系统包括有一个管理端功能模块和多个代理端功能模块,其中,管理端功能模块部署在集群系统的管理节点上,各代理端功能模块分别部署在集群系统的计算节点上。
管理端功能模块,根据用户指令向各代理端功能模块发送用于获取计算节点的运行状态数据的http请求,以及接收各代理端功能模块返回的运行状态数据,对接收到的运行状态数据进行处理并显示。
其中,管理端功能模块可以由shell脚本实现。
而管理端功能模块根据用户指令所发送的用于获取计算节点的运行状态数据的http请求中,包含有所要获取的计算节点的统一资源定位符(UniformResource Locator,url),以及所要获取的运行状态数据。这样,管理端功能模块通过url即可将上述http请求发送到对应的计算节点上。
还要说明的是,本实施例中计算节点的运行状态数据包括涉及CPU运行的参数(例如CPU利用率)、涉及内存运行的参数(例如内存使用率)以及涉及网络负载的参数(例如网络流量)等等。而管理端功能模块所发送的http请求中包含的所要获取的运行状态数据是计算节点的运行状态数据中的部分或全部,具体由用户指令来确实。当然也可以事先配置运行状态数据分组标识,http请求中包含分组标识,即表示要获取这一组运行状态数据。例如,将运行状态数据中涉及CPU运行的参数作为一组运行状态数据,并配置该组运行状态数据的标识,当http请求中包含了该组运行状态数据的标识,即表示该http请求所要获取的一组运行状态数据为涉及CPU运行的参数。
代理端功能模块,接收管理端功能模块发送的http请求,解析接收到的http请求,根据http请求的具体内容读取本计算节点上的运行状态数据,并所读取的运行状态数据返回给管理端功能模块。
代理端功能模块可由一系列完成特定功能的cgi脚本组成,这些脚本部署在每一个计算节点的web服务器httpd中,当httpd接收到管理节点发送的http请求后,httpd会解析http请求的内容(即http请求中所包含的本计算节点的运行状态数据),并根据请求的具体内容执行相应的cgi脚本完成服务端的请求(即代理端功能模块读取http请求所要获取的运行状态数据),并返回操作结果数据(即读取到的运行状态数据)。优选方案中,为了省去在各计算节点上分别部署的操作,简化脚本的部署过程,可以在部署cgi脚本时,将这些脚本放在管理节点的共享目录中,这样,各计算节点通过共享目录读取cgi脚本即可,而无需在各计算节点上分别进行部署了。另外,此种方式,还可以简化代理端功能模块的维护操作,即只需要在管理节点上维护共享目录中的脚本文件即可实现所有计算节点上的代理功能模块的维护,而不需要在每一个计算节点上面都维护一份同样的脚本文件。
实施例2
本实施例介绍一种集群系统的实现方法,该方法包括如下步骤:
管理节点根据用户指令向各计算节点发送用于获取计算节点的运行状态数据的http请求;
上述用于获取计算节点的运行状态数据的http请求中,包含有所要获取的计算节点的统一资源定位符(Uniform Resource Locator,url),以及所要获取的运行状态数据。这样,管理节点即可通过url将上述http请求发送到对应的计算节点上。
还要说明的是,本实施例中计算节点的运行状态数据包括涉及CPU运行的参数(如CPU利用率)、涉及内存运行的参数(如内存使用率)以及涉及网络负载的参数(如网络流量)等等。而管理节点所发送的http请求中包含的所要获取的运行状态数据是计算节点的运行状态数据中的部分或全部,具体由用户指令来确实。当然也可以事先配置运行状态数据分组标识,http请求中包含分组标识,即表示要获取这一组运行状态数据。例如,将运行状态数据中涉及CPU运行的参数作为一组运行状态数据,并配置该组运行状态数据的标识,当http请求中包含了该组运行状态数据的标识,即表示该http请求所要获取的一组运行状态数据为涉及CPU运行的参数。
接收到上述http请求的计算节点,根据所收到的http请求读取本计算节点的运行状态数据,将所读取的运行状态数据返回给管理节点;
管理节点收集各计算节点返回的运行状态数据,对收到的运行状态数据进行处理并显示给集群用户。
上述操作中,管理节点的操作是由其上部署的管理端功能模块执行的,而此管理端功能模块可通过shell脚本实现。
而计算节点上的操作是由其上部署的代理端功能模块块执行的,该代理端功能模块可以由部署在计算节点的web服务器httpd中一组cgi脚本实现。具体实现方式是,将所述cgi脚本保存在管理节点的共享目录中,计算节点的web服务器httpd通过共享服务调用所述cgi脚本。
下面结合附图,对上述方法做进一步详细说明。
图1所示为本实施例提供的集群系统的物理拓扑示意图,其中,管理节点和各计算节点位于机房内。管理节点和计算节点均采用linux操作系统。管理节点的主机名称为mu,各计算节点的名称分别为cu1,cu2,cu3,cu4,cu5,cu6。而图1所示的集群系统的具体实现过程如下:
步骤1:在管理节点上创建共享目录;
该步骤,在管理节点上面创建一个目录cgi-scripts,并把该目录通过NFS共享。
修改管理节点mu的/etc/exports文件,添加如下语句:
/tmp/cgi-scripts *(rw,async,no_root_squash)
启动mu上面的NFS服务。
[rootmu~]#service nfs start
而对于各计算节点,则需要将共享目录挂载到本地的/var/www/cgi-bin目录,并启动httpd服务。
[rootcu1~]#mount-t nfs mu :/tmp/cgi-scripts /var/www/cgi-bin
[rootcu1~]#service httpd start
步骤2:编写代理端脚本,即在各计算节点上部署代理端功能模块。
该步骤中,需要取得每个计算节点的负载情况和内存使用情况,在mu的共享目录中创建文件名称为load的脚本,脚本的内容如下:
#!/bin/sh
echo
hostname
cat/proc/loadavg
free|grep″Mem:″
修改脚本的权限,使其可以被执行。
[rootmu~]#chmod 755load
步骤3:编写管理端脚本,即在管理节点上部署管理端功能模块。
在mu的创建管理脚本,分别向各计算节点发送http请求,请求调用load脚本。
管理脚本的名称为getload.sh,脚本内容如下:
#!/bin/sh
for i in`seq 1 6`
do
curl http://cu$i/cgi-bin/load
done
修改getload.sh的权限,使其可以被执行。
[rootmu~]#chmod 755getload.sh
步骤4:测试,即管理节点通过管理端功能模块向各计算节点发送http请求,计算节点通过代理端功能模块接收http请求,进行相应的操作,并将操作结果数据返回给管理节点,管理节点收集各计算节点返回的数据,对收到的数据进行处理后进行显示。
具体地,该步骤可以在mu上面执行getload.sh脚本,该脚本在运行过程中会向计算节点cul-cu6分别发送http请求,请求获取各计算节点的运行状态数据,本例中的状态数据主要是指负载情况和内存使用情况。计算节点cul-cu6的httpd服务接收到管理节点发送的http请求后,会执行load脚本,获取负载数据和内存使用数据,并把数据返回给mu,显示到mu的屏幕上。执行脚本的命令如下:
[rootmu~]#./getload.sh
命令执行完成后得到的结果如图2所示。
至此,完成了代理端功能模块和管理端功能模块的创建和部署过程,并且通过执行管理端功能模块获取了各计算节点的负载情况和内存使用情况。如果需要获得计算节点其他的数据信息,只要编写相应的脚本就可以,功能扩展简单方便。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
从上述实施例可以看出,本申请技术方案具有开发时间短,安装部署方便的优点。只需要编写好shell脚本,放到共享目录中保存即可。另外,本申请技术方案扩展方便。需要给程序增加新的功能时,只需要编写相应的脚本,而无需对整个程序进行修改和重新编译。
以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种分布式集群系统,其特征在于,该系统包括一个部署在管理节点上的管理端功能模块,以及部署在各计算节点上的代理端功能模块,其中:
所述管理端功能模块,根据用户指令向各代理端功能模块发送用于获取计算节点的运行状态数据的http请求,以及接收各代理端功能模块返回的运行状态数据,对接收到的运行状态数据进行处理和显示;
所述代理端功能模块,接收所述管理端功能模块发送的http请求,根据所收到的http请求读取本计算节点的运行状态数据,并将读取的运行状态数据返回给所述管理端功能模块;
所述代理端功能模块,由部署在计算节点的web服务器httpd中一组cgi脚本实现;
所述代理端功能模块,由部署在计算节点的web服务器httpd中一组cgi脚本实现指:
将所述cgi脚本保存在管理节点的共享目录中,计算节点的web服务器httpd通过共享服务调用所述cgi脚本以实现所述代理端功能模块的操作;
所述http请求中包含有所要获取的计算节点的url,以及所要获取的计算节点的运行状态数据。
2.如权利要求1所述的系统,其特征在于,
所述管理端功能模块由shell脚本实现。
3.一种分布式集群系统的实现方法,其特征在于,该方法包括:
管理节点根据用户指令向各计算节点发送用于获取计算节点的运行状态数据的http请求;
接收到所述http请求的计算节点,根据所收到的http请求读取本计算节点的运行状态数据,并将读取的运行状态数据返回给所述管理节点;
所述管理节点收集各计算节点返回的运行状态数据,对收到的运行状态数据进行处理并显示给集群用户;
在各计算节点上部署一代理端功能模块,由该代理端功能模块接收所述http请求,根据所收到的http请求读取本计算节点的运行状态数据,并将读取的运行状态数据返回给所述管理节点,其中,该代理端功能模块由部署在计算节点的web服务器httpd中一组cgi脚本实现;
所述代理端功能模块由部署在计算节点的web服务器httpd中一组cgi脚本实现指:
将所述cgi脚本保存在管理节点的共享目录中,计算节点的web服务器httpd通过共享服务调用所述cgi脚本以实现所述代理端功能模块的操作;
所述http请求中包含有所要获取的计算节点的url,以及所要获取的计算节点的运行状态数据。
4.如权利要求3所述的方法,其特征在于,该方法还包括:
在所述管理节点上部署一管理端功能模块,由该管理端功能模块向各计算节点发送用于获取各计算节点的运行状态数据的http请求,其中,所述管理端功能模块采用shell脚本实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210113460.6A CN102638372B (zh) | 2012-04-17 | 2012-04-17 | 一种分布式集群系统及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210113460.6A CN102638372B (zh) | 2012-04-17 | 2012-04-17 | 一种分布式集群系统及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102638372A CN102638372A (zh) | 2012-08-15 |
CN102638372B true CN102638372B (zh) | 2015-04-08 |
Family
ID=46622625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210113460.6A Active CN102638372B (zh) | 2012-04-17 | 2012-04-17 | 一种分布式集群系统及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102638372B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731461B (zh) * | 2012-10-16 | 2018-09-04 | 百度在线网络技术(北京)有限公司 | 一种基于代理的分布式系统状态控制方法和系统 |
CN105577470A (zh) * | 2015-12-12 | 2016-05-11 | 天津南大通用数据技术股份有限公司 | 基于分布式资源管控的集群异常正交测试方法 |
CN106293951A (zh) * | 2016-08-23 | 2017-01-04 | 成都卡莱博尔信息技术股份有限公司 | 一种面向集群架构的资源池化管理方法 |
CN107885780A (zh) * | 2017-10-12 | 2018-04-06 | 北京人大金仓信息技术股份有限公司 | 一种针对分布式查询执行的性能数据收集方法 |
CN107870768B (zh) * | 2017-11-10 | 2020-11-17 | 浪潮云信息技术股份公司 | 一种CAE集群模式下Web应用程序的不停机部署方法 |
CN108170524A (zh) * | 2017-12-29 | 2018-06-15 | 北京奇虎科技有限公司 | 一种计算集群的任务处理方法和装置 |
CN110837453B (zh) * | 2019-11-01 | 2023-09-01 | 山东中创软件商用中间件股份有限公司 | 一种公文交换平台的监控方法及相关装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1933437A (zh) * | 2005-12-31 | 2007-03-21 | 穆源浦 | 基于可控p2p技术的流媒体服务系统及其实现方法 |
CN101453398A (zh) * | 2007-12-06 | 2009-06-10 | 怀特威盛软件公司 | 一种新型分布式网格超级计算系统及方法 |
-
2012
- 2012-04-17 CN CN201210113460.6A patent/CN102638372B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1933437A (zh) * | 2005-12-31 | 2007-03-21 | 穆源浦 | 基于可控p2p技术的流媒体服务系统及其实现方法 |
CN101453398A (zh) * | 2007-12-06 | 2009-06-10 | 怀特威盛软件公司 | 一种新型分布式网格超级计算系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102638372A (zh) | 2012-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102638372B (zh) | 一种分布式集群系统及其实现方法 | |
CN112084009B (zh) | PK体系下基于容器化技术构建和监控Hadoop集群与告警的方法 | |
US9785452B2 (en) | Framework for dependency management and automatic file load in a network environment | |
JP2010518490A (ja) | 不定期接続されるアプリケーションのための同期フレームワーク | |
CN111124277A (zh) | 一种深度学习数据集缓存方法、系统、终端及存储介质 | |
CN110784528B (zh) | 一种文件下载方法、装置和存储介质 | |
CN103297275A (zh) | Web网管客户端模块动态发现与加载的系统及方法 | |
CN109451014A (zh) | 一种WebService代理系统及其透明代理方法 | |
TW201351264A (zh) | 分散式文檔儲存系統及方法 | |
CN114363144B (zh) | 一种面向分布式系统的故障信息关联上报方法及相关设备 | |
CN109857391A (zh) | 数据的处理方法及装置、存储介质和电子装置 | |
CN112559296A (zh) | 基于prometheus的虚拟机监控方法和工具、电子设备、存储介质 | |
CN116010111B (zh) | 一种跨集群资源调度方法、系统及终端设备 | |
CN106709056A (zh) | 一种nfs挂载目录导出方法及装置 | |
CN112804313B (zh) | 基于跨域边缘节点的数据同步方法、装置、设备及介质 | |
CN110851528A (zh) | 数据库同步方法、装置、存储介质及计算机设备 | |
CN113364681B (zh) | 网络路径确定方法、装置、电子设备、介质和程序产品 | |
CN112764825B (zh) | 服务集成系统及相应设备和存储介质 | |
CN115357459A (zh) | 一种基于kubernetes的日志搜集方法 | |
CN102868747A (zh) | 资源信息管理方法和资源信息管理装置 | |
CN112422349A (zh) | 面向nfv的网管系统、方法、设备及介质 | |
CN112417818A (zh) | 文档目录生成方法和装置、存储介质及电子设备 | |
CN108363607A (zh) | 一种云平台虚拟机的虚拟链路断电恢复方法 | |
CN117520019B (zh) | 一种组件通信方法及装置 | |
CN116991815B (zh) | 一种分布式存储系统的日志收集方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |