一种spark集群断电自保护及来电自启动的方法与流程

文档序号:11620125阅读:484来源:国知局

本发明属于大数据技术领域,具体涉及一种spark集群断电自保护及来电自启动的方法。



背景技术:

spark是包含众多子项目的大数据计算平台,已成为apache基金会的顶级开源项目,拥有庞大的社区支持,技术也逐渐走向成熟。且在性能方面,spark凭借着速度快、易用、通用性、可融合性及轻量级快速处理等优点在众多的大数据分析处理平台中脱引而出。但spark集群在运维方面还存在着很大的优化空间。一方面,如果突然断电,即便有紧急电源,若集群不能及时响应,在紧急电源耗尽之后,依然会导致集群出现不一致的现象,会损坏数据和集群本身,甚至直接损坏硬件设备;另一方面,市电恢复之后,需要运维人员手动启动spark集群,这增加了人力成本,且很难保障时效性。



技术实现要素:

针对上述情况,本发明提出了一种利用普通ups作为后备电源,能在ups电量耗尽之前将集群系统和主机安全关闭以保护集群,并在恢复供电之后之后自动启动集群的方法,其中断电自保护是指在紧急电源失效之前主动自动将集群系统和主机关闭以保护集群。该方法可以保护spark集群在突然断电的情况下及时响应,避免遭到损坏,并在来电的时候可以自行启动spark集群,减少维护的人力成本。

一种spark集群断电自保护及来电自启动的方法,包括以下步骤:

步骤1,准备所需部件,包括:多个主机、交换机、路由器、ups;

步骤2,将准备部件中的所有主机分别与交换机相连接,路由器的lan口与交换机相连接;

所述主机与交换机均通过ups供电,所述路由器通过市电供电;

所述所有主机、交换机、路由器构成局域网;

所述所有主机通过交换机组成集群;

步骤3,在局域网中,任选一主机设为主节点,其余主机设为次节点;

若主节点检测到路由器掉线,则认为市电供电断电,随后主节点先关闭局域网中的spark集群,再关闭局域网中的hadoop集群,最后关闭所有主机;

若市电供电恢复,路由器自动启动,随后路由器下发开机指令,通过局域网唤醒主节点,主节点随后启动所有次节点,待所有次节点启动完毕后评估网络状况,然后启动局域网中的hadoop集群,最后启动局域网中的spark集群。

进一步地,主节点每隔时间t检测一次路由器是否在线;其中,t1≤t≤t2,t1为服务器向路由器单次询问的最短时间,t2为ups的备用电源所能供电的最长时限。

与现有的专用硬件设备(如远程开机卡)、自带远程开机功能的服务器主板、自带关闭主机功能的ups相比,本发明具有如下特点:

1.功能更加完善,针对供电得不到保障的集群设计,能做到无人值守,而现有的方案都不能提供完整的功能支持;

2.针对集群设计,在掉电时能够及时响应以保护整个集群的安全,而现有的方案都是针对单个主机设计,不能实现集群的保护。

3.非侵入式,无需为主机添加额为的硬件,确保集群的安全和稳定性;

4.廉价,无需昂贵的特定基础配套设施;

5.定制度高,可以针对关闭集群时以及自动开启集群时,使用脚本执行相应工作流,满足集群操作复杂、需要及时对环境做出判定并执行对应操作的需求;

6.无需特殊的硬件支持,最大化的利用了组建集群的基础设施,配合巧妙的组网技巧和软件支持,达到断电保护和来电自动开启的功能。

附图说明

图1是本发明的spark集群应用的硬件拓扑图;

具体实施方式

为更加清楚的阐述本方法及其优点,下面将结合附图和实施例对本发明进行进一步描述。

本发明采用了价格低廉的没有自动关机功能的ups来实现对spark集群掉电时的自动保护和来电时的自动开启;

实施例1

本实施例提供了一种spark集群断电自保护及来电自启动的方法,主要涉及,选择性的对网络拓扑中的部分设备启用紧急电源功能,而另一些设备则直接由市电供电,并配合相应的软件达成目的,包括以下步骤:

步骤1,准备所需部件,包括:多个主机、交换机、路由器、ups;

步骤2,如图1所示,将准备部件中的所有主机分别与交换机相连接,路由器的lan口与交换机相连接;

其中主机与交换机均通过ups供电,而路由器则通过市电供电;且,本发明对ups没有任何限制,也无组网要求,只要求确保指定的所有设备拥有紧急电源即可。

所述所有主机、交换机、路由器构成局域网;

所有主机与交换机组成集群;

这种网络拓扑结构和供电方式除了使得集群中各主机互联互通组成集群。更为本发明所提到的集群断电自保护及来电自启动的方法提供了实现的基石。

步骤3,在局域网中,任选一主机设为主节点,其余主机设为次节点;

为了防止突然掉电对集群带来伤害,要求在市电断点之后,赶在紧急电源失效之前,能在合适的时间将集群关闭。如图1所示,本实施例将路由器设计为由市电供电,而整个集群则由ups供电。很大程度上就是为了实现,断电自动关闭集群以保护集群的目的。

若主节点检测到路由掉线,则主节点认为市电掉电,而此时整个集群正由ups供电,主节点必须赶在ups电量耗完之前关闭整个集群并关闭所有主机。主节点利用本发明涉及的脚本程序自动化先关闭局域网中的spark集群,再关闭局域网中的hadoop集群,最后关闭所有主机;

而,如果主节点检测到市电供电断电时,直接执行关闭所有主机命令,而不是先关闭集群系统再关闭主机,则起不到保护集群的作用。

若市电供电恢复,路由器自动启动,并通过局域网唤醒主节点,随后主节点唤醒其余节点,并等待所有次节点启动完毕之后,评估集群所需要的基础网络环境(包括集群内节点间可以ping通、防火墙处于关闭状态、集群无端口号占用情况、集群主机间可以免密码登录等等),然后启动局域网中的hadoop集群,最后启动局域网中的spark集群。

当路由器上线(市电恢复)时通过网络唤醒主机是利用了网络唤醒技术。网络唤醒技术(wakeonlan)需要主机主板支持,提供了在链路层发送指定报文就能唤醒主机的能力。结合网络唤醒技术和自动化脚本,无需运维人员,整个集群就能被自动唤醒并使集群处于可用状态。

然而,通过wol功能唤醒主机,需要在mac层向指定的地址发送指定的数据,以告诉网卡向主板发送开机指令,大部分路由器并不支持该功能,即使支持该功能也不一定能完成特定任务。本实施例采用的是基于arm处理器的主板的路由器,并安装开源的openwrt路由操作系统,openwrt路由器操作系统是基于linux的系统。可以允许我们方便的在路由器上实现自定义功能。



技术特征:

技术总结
本发明提供了一种spark集群断电自保护及来电自启动的方法,该方法将所有主机分别与交换机相连接,路由器的LAN口与交换机相连接;主机与交换机均通过UPS供电,路由器则通过市电供电;所有主机、交换机、路由器构成局域网;多个主机通过交换机组成集群;任选一主机设为主节点,其余主机设为次节点;主节点每隔固定的时间段检测路由是否在线,若主节点检测到路由器掉线,则认为市电供电断电,然后关闭spark集群,再关闭hadoop集群,最后关闭所有主机,以保护集群软、硬件不受损坏;若市电供电恢复,路由器自动启动,并通过局域网唤醒主节点,随后主节点自动开启集群,以达到集群来电自启动的目的。

技术研发人员:胡景钊;冯筠;马凯歌
受保护的技术使用者:西北大学
技术研发日:2017.04.20
技术公布日:2017.08.04
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1