[发明专利]一种扁平化的高可用namenode模型的实现方法有效
申请号: | 201710860998.6 | 申请日: | 2017-09-21 |
公开(公告)号: | CN107832138B | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 胡文龙;王少辉;肖甫;王汝传 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 李吉宽 |
地址: | 210003 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 扁平 可用 namenode 模型 实现 方法 | ||
1.一种扁平化的高可用namenode模型的实现方法,其特征在于,所述方法的领导者namenode的选举包括如下步骤:
步骤1-1:当HDFS刚启动时,所有namenode节点均进入跟随者状态,没有领导者;
步骤1-2:如果在100ms至500ms之间的任意时刻,跟随者namenode没有接收到任何来自领导者namenode的心跳消息,不含数据信息的远程过程调用消息,它就会假定此时集群内没有可达或可用的领导者,那么该跟随者namenode就会发起选举,首先增加自己当前的任期号,创建一个比之前使用过的任何值都要大的新任期号,随即进入候选者角色,并尝试成为整个namenode集群的领导者;
步骤1-3:候选者namenode向其他namenode服务器发送投票请求,同时自己会投给自己一票,在获得集群中超过半数namenode节点反馈的同意响应后,候选者namenode会将自己的状态转换为领导者,并立即向namenode集群中其他服务器发送心跳信息,建立领导者地位;
中断事务包括:
当前候选者namenode如果收到了来自于有效领导者namenode的心跳信息,它就会立即放弃成为领导者的尝试,随即回到跟随者的状态;
候选者经过一个随机的选举超时时间后会再次自增自己的任期号,然后重启新一轮的选举,重复步骤1-3,直至集群最终产生领导者;
当领导者namenode被选举出来后,就能接收来自客户端的请求,请求可以分为读请求和写请求两种类型,包括:
步骤2-1:客户端向领导者提交写一个数据块的请求;
步骤2-2:领导者首先去本机内存中维护的元数据的目录树中检查客户端所请求写入的文件是否已存在于HDFS上,若没有,则会去datanode信息池中挑选副本数量个datanode服务器作为客户端可写入文件的数据节点,并将客户端申请写入HDFS的文件的元信息和挑选出来的datanode节点元信息作为一条日志发送给一致性模块;
步骤2-3:领导者namenode中的一致性模块向超过半数跟随者namenode同步日志,日志同步完成后将之前挑选出来的datanode数据节点列表信息返回给客户端;
步骤2-4:客户端在接收到领导者namenode返回的datanode列表信息后开始往这些datanode上写文件。
2.根据权利要求1所述的一种扁平化的高可用namenode模型的实现方法,其特征在于,所述的客户端从HDFS上读文件包括:
步骤3-1:客户端向namenode集群中任意一台服务器发送读请求;
步骤3-2:接收到来自客户端读请求的namenode服务器随即去目录树中检查HDFS中是否存在该文件;
步骤3-3:如果HDFS中不存在客户端要读的文件,则namenode服务器返回文件不存在异常,如果存在,则返回该文件对应的block及其副本所在的数据节点的列表信息;
步骤3-4:客户端从返回的block信息列表中挑选一个网络拓扑结构中距离最近的datanode服务器并向其发送读文件请求;
步骤3-5:被请求的datanode服务器向客户端传输文件。
3.根据权利要求1所述的一种扁平化的高可用namenode模型的实现方法,其特征在于,当领导者namenode出现崩溃或由于网络原因失去与过半跟随者namenode的联系,为了保证日志在每台服务器节点上的完整性与一致性和整个namenode集群的高可用性,此时namenode集群就会进入崩溃恢复过程,包括:
步骤4-1:某些或某一个跟随者namenode会进入候选者状态,并向其他服务器发起投票请求,请求里会包含自身最后一条日志记录信息的索引(lastIndex)以及任期号(lastTerm);
步骤4-2:当响应投票的服务器接收到请求,它会将候选者的日志信息与自己的日志信息进行比较,如果投票者(跟随者namenode)的日志更完整;
步骤4-3:经过上面的步骤已经选举出了领导者namenode,此时,领导者namenode会不断地向跟随者namenode发送包含自己日志信息的心跳消息;
步骤4-4:跟随者namenode根据接收到的心跳消息,删除所有跟领导者namenode不同的日志记录,并将所有丢失的日志记录依照领导者的日志进行补足。
4.根据权利要求3所述的一种扁平化的高可用namenode模型的实现方法,其特征在于,所述步骤4-2中当集群中的旧领导者崩溃后,新领导者可以在秒级单位时间内就选举产生,并对外提供服务,从现行的单一namenode节点变成了namenode集群来负责接收所有客户端发来的读、写请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710860998.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:图像处理算法
- 下一篇:用于管理区块链节点的计算资源的方法、设备和系统