发明内容
本发明的主要目的在于提供一种hadoop集群中namenode节点的启动方法、装置、系统及介质,旨在解决现有技术中如何让hadoop集群中的namenode优先快速启动的技术问题。
为实现上述目的,本发明提供一种hadoop集群中namenode节点的启动方法,所述hadoop集群中namenode节点的启动方法包括:
当检测到hadoop集群启动成功时,获取所述hadoop集群的组成信息;
根据所述组成信息,对所述hadoop集群中的各个节点进行检测,确定各个所述节点中的初始namenode节点是否启动;
若所述初始namenode的节点未启动,则查找所述hadoop集群中已启动的目标节点,并将所述目标节点设为新的namenode节点。
可选地,所述查找所述hadoop集群中已启动的目标节点的步骤之后包括:
判断所述目标节点是否为备用namenode节点,若为备用namenode节点,则执行将所述目标节点设为新的name节点的步骤;
若所述目标节点非备用namenode节点,则判断所述目标节点是否为支持切换的从节点;
若为支持切换的从节点,则执行将所述目标节点设为新的namenode节点的步骤。
可选地,所述备用namenode节点和所述支持切换的从节点的配置信息均包括主节点配置信息和从节点配置信息,且所述主节点配置信和从节点配置信息支持互相切换。
可选地,所述将所述目标节点设为新的namenode节点的步骤之后包括:
将所述新的namenade节点中的主节点配置信息配置为激活状态,并将所述初始namenode节点中的从节点配置信息配置为待激活状态。
可选地,所述将所述目标节点设为新的namenode节点的步骤之后还包括:
将所述hadoop集群中除所述新的namenode节点之外的其他节点设为新的从节点;
检测各所述新的从节点中的待启动从节点,并对所述待启动从节点进行启动。
可选地,多个所述hadoop集群形成hadoop集群组,所述将所述目标节点设为新的namenode节点的步骤之后包括:
在检测到所述hadoop集群组中各个所述hadoop集群的namenode节点均启动后,向各个所述hadoop集群的namenode节点发送文件传输请求,以将待发送文件发送到各个所述hadoop集群。
可选地,所述在检测到所述hadoop集群组中各个所述hadoop集群的namenode节点均启动后,向各个所述hadoop集群的namenode节点发送文件传输请求的步骤之前包括:
检测各所述hadoop集群中的namenode节点是否均返回心跳;
若均返回心跳,则根据各所述namenode节点返回的心跳,验证各所述namenode节点的有效性;
在各所述namenode节点均验证有效后,判定所述hadoop集群组中各个所述hadoop集群的namenode节点均启动。
进一步地,为实现上述目的,本发明还提供一种hadoop集群中namenode节点的启动装置,其特征在于,所述启动装置包括:
获取模块,用于当检测到hadoop集群启动成功时,获取所述hadoop集群的组成信息;
检测模块,用于根据所述组成信息,对所述hadoop集群中的各个节点进行检测,确定各个所述节点中的初始namenode节点是否启动;
查找模块,用于若所述初始namenode的节点未启动,则查找所述hadoop集群中已启动的目标节点,并将所述目标节点设为新的namenode节点。
进一步地,为实现上述目的,本发明还提供一种hadoop集群的启动系统,所述hadoop集群的启动系统包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的控制程序,所述控制程序被所述处理器执行时实现如上所述的hadoop集群中namenode节点的启动方法的步骤。
进一步地,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有控制程序,所述控制程序被处理器执行时实现如上所述的hadoop集群中namenode节点的启动方法的步骤。
本发明的hadoop集群中namenode节点的启动方法、装置、系统及介质,一旦检测到hadoop集群启动成功,则对hadoop集群的组成信息进行获取;进而根据组成信息,对hadoop集群中的各个节点进行检测,确定各个节点中的初始namenode节点是否启动;若初始namenode的节点尚未启动,则查找hadoop集群中已启动的目标节点,并将目标节点设为新的namenode节点。由此,通过对hadoop集群中已启动的节点设置切换机制,在namenode尚未启动时,将已启动的节点设为新的namenode,使得无论hadoop中启动的是何种节点,均可作为namenode节点,实现namenode节点的优先快速启动。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种hadoop集群的启动系统。
请参照图1,图1为本发明hadoop集群的启动系统实施例方案涉及的硬件运行环境的结构示意图。
如图1所示,该hadoop集群的启动系统可以包括处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
本领域技术人员可以理解,图1中示出的hadoop集群的启动系统硬件结构并不构成对hadoop集群的启动系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及控制程序。其中,操作系统是管理和控制hadoop集群的启动系统与软件资源的程序,支持网络通信模块、用户接口模块、控制程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1004;用户接口模块用于管理和控制用户接口1003。
在图1所示的hadoop集群的启动系统硬件结构中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;处理器1001可以调用存储器1005中存储的控制程序,并执行以下操作:
当检测到hadoop集群启动成功时,获取所述hadoop集群的组成信息;
根据所述组成信息,对所述hadoop集群中的各个节点进行检测,确定各个所述节点中的初始namenode节点是否启动;
若所述初始namenode的节点未启动,则查找所述hadoop集群中已启动的目标节点,并将所述目标节点设为新的namenode节点。
进一步地,所述查找所述hadoop集群中已启动的目标节点的步骤之后;处理器1001可以调用存储器1005中存储的控制程序,并执行以下操作:
判断所述目标节点是否为备用namenode节点,若为备用namenode节点,则执行将所述目标节点设为新的name节点的步骤;
若所述目标节点非备用namenode节点,则判断所述目标节点是否为支持切换的从节点;
若为支持切换的从节点,则执行将所述目标节点设为新的namenode节点的步骤。
进一步地,所述备用namenode节点和所述支持切换的从节点的配置信息均包括主节点配置信息和从节点配置信息,且所述主节点配置信和从节点配置信息支持互相切换。
进一步地,所述将所述目标节点设为新的namenode节点的步骤之后;处理器1001可以调用存储器1005中存储的控制程序,并执行以下操作:
将所述新的namenade节点中的主节点配置信息配置为激活状态,并将所述初始namenode节点中的从节点配置信息配置为待激活状态。
进一步地,所述将所述目标节点设为新的namenode节点的步骤之后;处理器1001可以调用存储器1005中存储的控制程序,并执行以下操作:
将所述hadoop集群中除所述新的namenode节点之外的其他节点设为新的从节点;
检测各所述新的从节点中的待启动从节点,并对所述待启动从节点进行启动。
进一步地,多个所述hadoop集群形成hadoop集群组,所述将所述目标节点设为新的namenode节点的步骤之后;处理器1001可以调用存储器1005中存储的控制程序,并执行以下操作:
在检测到所述hadoop集群组中各个所述hadoop集群的namenode节点均启动后,向各个所述hadoop集群的namenode节点发送文件传输请求,以将待发送文件发送到各个所述hadoop集群。
进一步地,所述在检测到所述hadoop集群组中各个所述hadoop集群的namenode节点均启动后,向各个所述hadoop集群的namenode节点发送文件传输请求的步骤之前;处理器1001可以调用存储器1005中存储的控制程序,并执行以下操作:
检测各所述hadoop集群中的namenode节点是否均返回心跳;
若均返回心跳,则根据各所述namenode节点返回的心跳,验证各所述namenode节点的有效性;
在各所述namenode节点均验证有效后,判定所述hadoop集群组中各个所述hadoop集群的namenode节点均启动。
本发明hadoop集群的启动系统的实施方式与下述hadoop集群中namenode节点的启动方法各实施例基本相同,在此不再赘述。
本发明提供一种hadoop集群中namenode节点的启动方法,参照图2,图2为本发明hadoop集群中namenode节点的启动方法第一实施例的流程示意图。
本发明实施例提供了hadoop集群中namenode节点的启动方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。具体地,本实施例hadoop集群中namenode节点的启动方法包括:
步骤S10,当检测到hadoop集群启动成功时,获取所述hadoop集群的组成信息;
本实施例hadoop集群中namenode节点的启动方法应用于对hadoop集群启动进行控制的启动系统的控制中心,hadoop集群至少设置有三台机器,一台作为namenode节点,又称主节点,另两台作为datanode节点,又称从节点。三台机器可以是实际存在的物理机,也可以是虚拟机;对于物理机,控制中心优选搭载在主节点上,对于虚拟机,则控制中心优选搭载在宿主机上。通过控制中心运行检测指令来检测hadoop集群是否成功启动,若成功启动,则对hadoop集群的组成信息进行获取,该组成信息为加入到hadoop集群中每台机器各自具有的信息。
并且,检测hadoop集群是否成功启动,可通过判断是否接收到加入hadoop集群中任意一台机器返回的心跳实现,若接收到任意一台机器返回的心跳,则判定hadoop集群成功启动,反之则判定hadoop集群未成功启动。
步骤S20,根据所述组成信息,对所述hadoop集群中的各个节点进行检测,确定各个所述节点中的初始namenode节点是否启动;
进一步地,在获取到组成信息后,则可依据该组成信息,对hadoop集群中启动的节点进行识别,确定初始namenode节点是否启动。具体地,组成信息至少包含每台机器的IP地址,角色标识等,由角色标识可确定hadoop集群中的初始namenode节点,该初始namenode节点即为初始设定为hadoop集群中的主节点。同时,控制中对返回心跳的节点标识进行读取,进而将该读取的节点标识和初始namenode节点的标识进行对比,判断两者是否一致,若一致则说明返回心跳的节点为初始namenode节点,各个节点中的初始nomenode节点启动。若两者不一致,则说明返回心跳的节点非初始namenode节点,各个节点中的初始namenode节点未启动。
步骤S30,若所述初始namenode的节点未启动,则查找所述hadoop集群中已启动的目标节点,并将所述目标节点设为新的namenode节点。
更进一步地,若经判定初始namenode节点未启动,则根据返回心跳中携带的标识查找hadoop集群中已启动的节点,并将查找到的节点作为目标节点。进而将目标节点作为hadoop集群中新的namenode节点,以通过新namenode节点实现对hadoop集群数据的管理。
可理解地,对于hadoop集群包含众多机器的情况,若将所有节点均设置为支持切换为namenode,可能会使得namenode节点的变换过于频繁。故本实施例针对namenode节点设置备用namenode节点,以及从datanode中选取部分作为支持切换的从节点。所述查找所述hadoop集群中已启动的目标节点的步骤之后包括:
步骤a1,判断所述目标节点是否为备用namenode节点,若为备用namenode节点,则执行将所述目标节点设为新的name节点的步骤;
步骤a2,若所述目标节点非备用namenode节点,则判断所述目标节点是否为支持切换的从节点;
步骤a3,若为支持切换的从节点,则执行将所述目标节点设为新的namenode节点的步骤。
进一步地,在查找到hadoop集群中已启动的目标节点后,通过目标节点携带的节点标识,判断该目标节点是否为备用namenode节点,若为备用namenode节点,则将该目标节点直接设为新的namenode节点。若目标节点携带的节点标识其非备用namenode节点,则继续判断该节点标识是否为支持切换的节点标识。若为支持切换的节点标识,则说明目标节点为各个节点中支持切换的从节点,将该目标节点设为新的namenode节点。若节点标识非支持切换的节点标识,则说明目标节点为从节点,但不支持切换。此时,继续控制hadoop集群中各节点启动,直到启动的节点为namenode节点、备选namenode节点或支持切换的从节点。
需要说明的是,不同类型的节点因侧重点功能不同而具有不同的配置信息,对于namenode节点和备选namenode来说,其配置信息优选为主节点配置信息,对于datanode节点来说,其配置信息优选为从节点配置信息。但为了便于将最先启动的节点作为namenode节点,将各个节点还配置为支持在主节点配置信息和从节点配置信息之间互相切换。即,将namenode节点和备选namenode节点配置为包含主节点配置信息和从节点配置信息,以及将支持切换的从节点配置为包含从节点配置信息和主节点配置信息;正常情况下,namenode节点和备选namenode节点默认以主节点配置信息启动,支持切换的从节点默认以从节点配置信息启动。而当需要将支持切换的从节点作为namenode节点时,则将namenode节点和备选namenode节点切换为以从节点配置信息启动,将需要作为namenode节点的从节点切换为以主节点配置信息启动,对于其他从节点,则以正常的从节点配置信息启动。
具体到本实施例中,在将作为目标节点的备选namenode节点或支持切换的从节点设为新的namenode节点后,则将新的namenode节点中的主节点配置信息配置为激活状态,以主节点配置信息启动。同时,将初始namenode节点中的从节点配置信息配置为待激活状态,以在初始namenode节点启动时,激活以从节点配置信息启动
进一步地,将hadoop集群中除了设为新的namenode节点之外的其他节点作为新的从节点,并对新的所有从节点进行检测,确定其中已返回心跳,表征已启动的从节点。进而将已启动的从节点从新的所有从节点中剔除,而将剩余未启动的从节点作为待启动从节点进行启动。其中,从节点的启动,不影响namenode节点的工作,hadoop集群在namenode节点启动后,即可进行与namenode节点相关的工作,而与从节点是否启动与否无关,以使得hadoop集群的工作效率提高。
本发明的hadoop集群中namenode节点的启动方法,一旦检测到hadoop集群启动成功,则对hadoop集群的组成信息进行获取;进而根据组成信息,对hadoop集群中的各个节点进行检测,确定各个节点中的初始namenode节点是否启动;若初始namenode的节点尚未启动,则查找hadoop集群中已启动的目标节点,并将目标节点设为新的namenode节点。由此,通过对hadoop集群中已启动的节点设置切换机制,在namenode尚未启动时,将已启动的节点设为新的namenode,使得无论hadoop中启动的是何种节点,均可作为namenode节点,实现namenode节点的优先快速启动。
进一步地,请参照图3,基于本发明hadoop集群中namenode节点的启动方法的第一实施例,提出本发明hadoop集群中namenode节点的启动方法第二实施例。
所述hadoop集群中namenode节点的启动方法第二实施例与所述hadoop集群中namenode节点的启动方法第一实施例的区别在于,多个所述hadoop集群形成hadoop集群组,所述将所述目标节点设为新的namenode节点的步骤之后包括:
步骤S40,在检测到所述hadoop集群组中各个所述hadoop集群的namenode节点均启动后,向各个所述hadoop集群的namenode节点发送文件传输请求,以将待发送文件发送到各个所述hadoop集群。
可理解地,多个hadoop集群可以组成hadoop集群组,以使得数据的存储处理能力进一步增加。本实施例即将多个hadoop集群做成hadoop集群组,对于hadoop集群组,在将其中某一hadoop集群的目标节点设为新的namenode节点后,检测hadoop集群组中其他hadoop集群的namenode节点是否均启动,若均启动则可向hadoop集群组中各个hadoop集群的namenode节点发送文件传输请求,以请求向各个hadoop集群传输待发送文件。若经检测hadoop集群组中存在任意hadoop集群的namenode节点未启动,则依据上述实施例的方式,启动该类hadoop集群的namenode节点,直到检测到hadoop集群组中各个hadoop集群的namenode节点均启动。
需要说明的是,对hadoop集群组中各个hadoop集群的namenode节点是否启动的检测,可通过检测各个hadoop集群的namenode节点是否返回心跳实现。具体地,所述在检测到所述hadoop集群组中各个所述hadoop集群的namenode节点均启动后,向各个所述hadoop集群的namenode节点发送文件传输请求的步骤之前包括:
步骤b1,检测各所述hadoop集群中的namenode节点是否均返回心跳;
步骤b2,若均返回心跳,则根据各所述namenode节点返回的心跳,验证各所述namenode节点的有效性;
步骤b3,在各所述namenode节点均验证有效后,判定所述hadoop集群组中各个所述hadoop集群的namenode节点均启动。
进一步地,检测各个hadoop集群是否均返回心跳,若返回心跳则说明各个hadoop集群均启动。考虑到hadoop集群的启动可能是其中非namenode的启动,而是其他尚未切换或不能切换为namenode节点的启动,故还需检测返回心跳的节点是否为namenode节点。若存在未返回心跳的hadoop集群,则说明hadoop集群组中存在尚未启动的hadoop集群,待该尚未启动的hadoop集群启动后,再检测其启动的节点是否为namenode节点。
具体地,检测返回心跳的节点是否携带有namenode节点的标识,若携带有namenode节点的标识,则判定返回心跳的节点为nomenode节点。若存在某一返回心跳的节点未携带有namenode节点的标识,则判定该返回心跳的节点非namenode节点,则需等待将该节点切换为新的namenode节点,或者其他可切换为新的namenode节点,或者初始namenode节点启动后,才判定返回心跳的节点为namenode节点。
其中,namenode节点的标识可以是初始namenode节点携带的标识,表征启动的节点为初始设定的namenode节点,也可是支持切换的从节点或备选namenode节点设为新的namenode节点携带的标识,表征是将启动的支持切换的从节点或备选namenode节点设定的新namenode节点。
进一步地在检测出所有hadoop集群中的namenode节点均返回心跳后,为了避免各namenode节点中存在假冒节点,还通过作为心跳反馈的数据中携带的节点标识,验证各namenode节点的有效性。其中,预先设置表征各namenode节点唯一性的参考标识,对于各个namenode节点返回的心跳,读取其中携带的节点标识与各自的参考标识对比,判断两者是否一致。
若各个namenode节点的节点标识均与各自的参考标识一致,则判定各namenode节点均有效,从而判定hadoop集群组中各hadoop集群的namenode节点均启动。若各namenode节点的节点标识中存在任意一项与其参考标识不一致,则判断各namenode节点中存在无效的namenode节点;此时,输出提示信息,以提示对无效的namenode节点及时处理。需要说明的是,对namenode节点的有效性验证,也可以逐一进行,不需要等各个namenode节点均返回心跳后,才进行有效性验证。即,每检测到有一个namenode节点返回心跳,则对该namenode节点进行有效性验证,在各个namenode节点均返回心跳后,则对所有namenode节点进行有效性验证,从而判定各个hadoop集群的namenode节点均启动,可发送文件传输请求,用以将待发送文件传输到各个hadoop集群。
本实施例通过将多个hadoop集群形成为hadoop集群组,hadoop集群组中的所有hadoop集群均采用上述namenode节点的启动方式,确保整个hadoop集群组启动效率的提高。并且,通过namenode节点有效性的验证机制,确保了hadoop集群组中各个haodoop集群的合法有效,从而有利于实现待发送文件在各个hadoop集群的安全传输。
请参照图4,本发明实施例还提出一种hadoop集群中namenode节点的启动装置,所述启动装置包括:
获取模块10,用于当检测到hadoop集群启动成功时,获取所述hadoop集群的组成信息;
检测模块20,用于根据所述组成信息,对所述hadoop集群中的各个节点进行检测,确定各个所述节点中的初始namenode节点是否启动;
查找模块30,用于若所述初始namenode的节点未启动,则查找所述hadoop集群中已启动的目标节点,并将所述目标节点设为新的namenode节点。
进一步地,所述启动装置还包括判断模块,所述判断模块用于:
判断所述目标节点是否为备用namenode节点,若为备用namenode节点,则执行将所述目标节点设为新的name节点的步骤;
若所述目标节点非备用namenode节点,则判断所述目标节点是否为支持切换的从节点;
若为支持切换的从节点,则执行将所述目标节点设为新的namenode节点的步骤。
进一步地,所述备用namenode节点和所述支持切换的从节点的配置信息均包括主节点配置信息和从节点配置信息,且所述主节点配置信和从节点配置信息支持互相切换。
进一步地,所述启动装置还包括配置模块,所述配置模块用于:
将所述新的namenade节点中的主节点配置信息配置为激活状态,并将所述初始namenode节点中的从节点配置信息配置为待激活状态。
进一步地,所述启动装置还包括:
设置模块,用于将所述hadoop集群中除所述新的namenode节点之外的其他节点设为新的从节点;
启动模块,用于检测各所述新的从节点中的待启动从节点,并对所述待启动从节点进行启动。
进一步地,多个所述hadoop集群形成hadoop集群组所述启动装置还包括:
发送模块,用于在检测到所述hadoop集群组中各个所述hadoop集群的namenode节点均启动后,向各个所述hadoop集群的namenode节点发送文件传输请求,以将待发送文件发送到各个所述hadoop集群。
进一步地,所述发送模块还用于
检测各所述hadoop集群中的namenode节点是否均返回心跳;
若均返回心跳,则根据各所述namenode节点返回的心跳,验证各所述namenode节点的有效性;
在各所述namenode节点均验证有效后,判定所述hadoop集群组中各个所述hadoop集群的namenode节点均启动。
本发明实施例还提出一种可读存储介质。所述可读存储介质上存储有控制程序,所述控制程序被所述处理器执行时实现如上所述hadoop集群中namenode节点的启动方法的步骤。
本发明可读存储介质可以为计算机可读存储介质,其具体实施方式与上述hadoop集群中namenode节点的启动方法各实施例基本相同,在此不再赘述。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。