CN104601693A - 一种分布式系统中响应操作指令的方法和装置 - Google Patents

一种分布式系统中响应操作指令的方法和装置 Download PDF

Info

Publication number
CN104601693A
CN104601693A CN201510016066.4A CN201510016066A CN104601693A CN 104601693 A CN104601693 A CN 104601693A CN 201510016066 A CN201510016066 A CN 201510016066A CN 104601693 A CN104601693 A CN 104601693A
Authority
CN
China
Prior art keywords
namenode
operational order
poll
hadoop
polled
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.)
Granted
Application number
CN201510016066.4A
Other languages
English (en)
Other versions
CN104601693B (zh
Inventor
郭李明
吕信
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201510016066.4A priority Critical patent/CN104601693B/zh
Publication of CN104601693A publication Critical patent/CN104601693A/zh
Application granted granted Critical
Publication of CN104601693B publication Critical patent/CN104601693B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种分布式系统中响应操作指令的方法和装置,能够在Hadoop集群在进行用户权限更新和节点扩容等操作时,具有比较高的操作效率,并有助于保证集群的可靠性。该方法包括:确定Hadoop系统中所有的NameNode;在接收到操作指令后,对确定出的NameNode进行轮询,并且对轮询到的NameNode执行所述操作指令。

Description

一种分布式系统中响应操作指令的方法和装置
技术领域
本发明涉及计算机技术领域,特别地涉及一种分布式系统中响应操作指令的方法和装置。
背景技术
Hadoop(海杜普)是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop 2.x版本以后,针对原有NameNode单点故障提出了解决方案并加以实现,也就是NameNode高可用(High Availability),实现NameNode热切和自动故障转换,解决方案大体为:Hadoop集群配置两个NameNode,一个为主一个为备用,主NameNode向外提供服务,备NameNode为备用状态,当主NameNode出现故障,备NameNode便会接替原先主NameNode的工作。
目前Hadoop NameNode高可用提供了两种技术方案:
1、共享操作日志目录:Hadoop将文件块的操作日志存储到一个指定的网络文件系统的共享目录中,主NameNode负责把操作日志信息写入到共享目录中,备NameNode负责从共享目录中读取,这样就可达成主备NameNode之间数据一致性。
2、日志同步管理:Hadoop将文件块的操作日志通过一组日志节点进程来进行同步的,这组日志节点进程负责同步主备NameNode之间的日志信息,要求这组日志节点进程的个数不能小于3个。这种模式可以允许一部分日志节点进程同步成功即认为整个同步操作就算成功,允许日志节点进程成功的个数为:(n-1)/2,其中n为这组日志节点进程的总个数,这种策略也能最大限度的保证集群的稳定性和提高集群容错率。
在以上两种NameNode高可用状态下,Hadoop集群用户权限更新和集群节点扩容操作存在缺陷,给集群稳定和高效带来极大风险。图1是根据现有技术中的Hadoop执行用户权限更新和节点扩容操作工作流程的示意图,按图1的流程,当在其中一个NameNode上执行成功后便直接返回,导致另一个NameNode无法接收到最新的用户权限和节点信息,此时如果这个无法接收到最新的用户权限和节点操作指令的NameNode恰好为主NameNode,那么就会导致整个集群都无法获取到最新的用户权限和节点信息,也就无法进行用户权限更新和节点扩容操作,导致信息丢失。
如果未执行操作的NameNode此时并不是主NameNode,当主NameNode服务出现故障,备用NameNode接替服务时,由于之前执行用户权限更新和节点扩容操作时备用NameNode没有获取到最新信息,也会导致用户权限和节点信息丢失。
目前一般采用的人工干预的方式能够在一定程度上解决这个问题,其具体步骤为:在进行用户权限更新或者节点扩容操作时,查看当前主NameNode是否已经获取了最新的用户权限和节点信息,如果未更新,说明执行操作的NameNode不是主NameNode,此时解决办法有两个:
方法一:将备NameNode停止服务,再次执行用户权限更新或节点扩容操作,然后将配置信息同步到备用NameNode,启动服务,此时备用NameNode也能获取到最新的用户权限和节点信息;
方法二:通过NameNode热切命令,将主备两个NameNode的状态互换,然后执行用户权限更新或节点扩容操作,将配置信息同步到备用NameNode,启动服务即可。
如果进行了用户权限更改或者节点上下线操作,当前主NameNode能同步到最新的用户权限和节点信息,那么只需要将配置信息同步到备NameNode,然后重启备NameNode服务,此时两个NameNode都有最新的用户权限和节点信息。
以上通过人工干预的方式缺点也是显而易见的:对于人工操作来说,总是存在一定程度的误操作风险,因此影响集群的可靠性;另外人工操作的效率较低,并且会增加人工工作量。
发明内容
有鉴于此,本发明提供一种分布式系统中响应操作指令的方法和装置,能够在Hadoop集群在进行用户权限更新和节点扩容等操作时,具有比较高的操作效率,并有助于保证集群的可靠性。
为实现上述目的,根据本发明的一个方面,提供了一种分布式系统中响应操作指令的方法。
本发明的分布式系统中响应操作指令的方法包括:确定Hadoop系统中所有的NameNode;在接收到操作指令后,对确定出的NameNode进行轮询,并且对轮询到的NameNode执行所述操作指令。
可选地,确定Hadoop系统中所有的NameNode的步骤包括:解析Hadoop配置文件以获取Hadoop系统中所有的NameNode。
可选地,在对轮询到的NameNode执行所述操作指令时,若执行失败,则对已轮询的NameNode进行回滚操作,并且停止所述轮询。
可选地,所述操作指令包括用户权限更新操作指令和节点扩容操作指令。
根据本发明的另一方面,提供了一种分布式系统中响应操作指令的装置。
本发明的分布式系统中响应操作指令的装置包括:确定模块,用于确定Hadoop系统中所有的NameNode;指令接收模块,用于接收操作指令;轮询执行模块,用于在所述指令接收模块接收到操作指令后,对确定出的NameNode进行轮询,并且对轮询到的NameNode执行所述操作指令。
可选地,所述确定模块还用于解析Hadoop配置文件以获取Hadoop系统中所有的NameNode。
可选地,所述轮询执行模块还用于在对轮询到的NameNode执行所述操作指令时,若执行失败,则对已轮询的NameNode进行回滚操作,并且停止所述轮询。
可选地,所述操作指令包括用户权限更新操作指令和节点扩容操作指令。
根据本发明的技术方案,对Hadoop系统中所有的NameNode进行轮询,对轮询到的NameNode执行用户权限更新操作指令或者节点扩容操作指令,使每个NameNode节点都能获得最新的用户权限信息以及节点信息。其中优选的方式是在轮询过程中,只要有一个NameNode操作失败,就对已轮询即已处理的NameNode节点进行回滚操作,这样可以保证主备NameNode间信息的一致性。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据现有技术中的Hadoop执行用户权限更新和节点扩容操作工作流程的示意图;
图2是根据本发明实施例的分布式系统中响应操作指令的方法的基本流程的示意图;
图3是根据本发明实施例的分布式系统中响应操作指令的装置的主要模块的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图2是根据本发明实施例的分布式系统中响应操作指令的方法的基本流程的示意图,该分布式系统为Hadoop集群,该流程由接收到操作指令的节点来执行。如图2所示,该方法主要包括如下的步骤S21至步骤S26。
步骤S21:确定Hadoop系统中所有的NameNode。在本步骤中,可通过解析Hadoop配置文件来获取Hadoop系统中所有的NameNode。具体而言,在Hadoop的hdfs-site.xml配置文件中有名为dfs.namenode.rpc-address.[NameServiceID].[NameNodeId]的参数,参数内容包含了服务器域名和NameNode服务的启动端口(默认为8020),其中NameServiceID标示了NameNode分组信息,通过参数dfs.nameservices来配置,NameNodeId为每个NameNode特有并且唯一的标示,通过参数dfs.ha.namenodes配置。这两项的配置内容规则均为手工指定,均定义在hdfs-site.xml配置文件中,内容不相互重复即可。
步骤S22:接收操作指令。例如接收用户权限更新操作指令,或者节点扩容操作指令。
步骤S23:对步骤S21确定出的NameNode进行轮询,并且对轮询到的NameNode执行步骤S22中接收到的操作指令。
步骤S24:判断步骤S23中执行操作指令是否成功。若成功,进入步骤S25。若不成功,进入步骤S26。
步骤S25:判断是否还有NameNode没有轮询到。若是,返回步骤S23,否则结束流程。
步骤S26:对已轮询的NameNode进行回滚操作。本步骤之后结束流程。也就是说,如果任意一个NameNode执行操作时失败了,那么整个操作也将视为失败,保证主备NameNode间信息的一致性。
本实施例的上述处理方式仍支持目前Hadoop提供的两种NameNode高可用方案,如果Hadoop后续还提供其他的高可用方案,但实现机制还是主备模式,那么改造的功能也是同样适用的。在集群管理操作层面上,使用了本发明改造后的版本,只需要在主备任意一个NameNode节点上执行用户权限更新和节点扩容的指令即可。
图3是根据本发明实施例的分布式系统中响应操作指令的装置的主要模块的示意图。如图3所示,响应操作指令的装置30主要包括确定模块31、指令接收模块32、以及轮询执行模块33。确定模块31用于确定Hadoop系统中所有的NameNode;指令接收模块32用于接收操作指令;轮询执行模块33用于在指令接收模块32接收到操作指令后,对确定出的NameNode进行轮询,并且对轮询到的NameNode执行上述操作指令。确定模块31还可用于解析Hadoop配置文件以获取Hadoop系统中所有的NameNode。轮询执行模块33还可用于在对轮询到的NameNode执行上述操作指令时,若执行失败,则对已轮询的NameNode进行回滚操作,并且停止轮询。
根据本发明实施例的技术方案,对Hadoop系统中所有的NameNode进行轮询,对轮询到的NameNode执行用户权限更新操作指令或者节点扩容操作指令,使每个NameNode节点都能获得最新的用户权限信息以及节点信息。其中优选的方式是在轮询过程中,只要有一个NameNode操作失败,就对已轮询即已处理的NameNode节点进行回滚操作,这样可以保证主备NameNode间信息的一致性。
以上结合具体实施例描述了本发明的基本原理,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (8)

1.一种分布式系统中响应操作指令的方法,其特征在于,包括:
确定Hadoop系统中所有的NameNode;
在接收到操作指令后,对确定出的NameNode进行轮询,并且对轮询到的NameNode执行所述操作指令。
2.根据权利要求1所述的方法,其特征在于,确定Hadoop系统中所有的NameNode的步骤包括:解析Hadoop配置文件以获取Hadoop系统中所有的NameNode。
3.根据权利要求1所述的方法,其特征在于,在对轮询到的NameNode执行所述操作指令时,若执行失败,则对已轮询的NameNode进行回滚操作,并且停止所述轮询。
4.根据权利要求1,2或3所述的方法,其特征在于,所述操作指令包括用户权限更新操作指令和节点扩容操作指令。
5.一种分布式系统中响应操作指令的装置,其特征在于,包括:
确定模块,用于确定Hadoop系统中所有的NameNode;
指令接收模块,用于接收操作指令;
轮询执行模块,用于在所述指令接收模块接收到操作指令后,对确定出的NameNode进行轮询,并且对轮询到的NameNode执行所述操作指令。
6.根据权利要求5所述的装置,其特征在于,所述确定模块还用于解析Hadoop配置文件以获取Hadoop系统中所有的NameNode。
7.根据权利要求5所述的装置,其特征在于,所述轮询执行模块还用于在对轮询到的NameNode执行所述操作指令时,若执行失败,则对已轮询的NameNode进行回滚操作,并且停止所述轮询。
8.根据权利要求5,6或7所述的装置,其特征在于,所述操作指令包括用户权限更新操作指令和节点扩容操作指令。
CN201510016066.4A 2015-01-13 2015-01-13 一种分布式系统中响应操作指令的方法和装置 Active CN104601693B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510016066.4A CN104601693B (zh) 2015-01-13 2015-01-13 一种分布式系统中响应操作指令的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510016066.4A CN104601693B (zh) 2015-01-13 2015-01-13 一种分布式系统中响应操作指令的方法和装置

Publications (2)

Publication Number Publication Date
CN104601693A true CN104601693A (zh) 2015-05-06
CN104601693B CN104601693B (zh) 2019-03-01

Family

ID=53127187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510016066.4A Active CN104601693B (zh) 2015-01-13 2015-01-13 一种分布式系统中响应操作指令的方法和装置

Country Status (1)

Country Link
CN (1) CN104601693B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105007172A (zh) * 2015-05-28 2015-10-28 杭州健港信息科技有限公司 一种hdfs高可用性方案的实现方法
CN105554132A (zh) * 2015-12-23 2016-05-04 浪潮集团有限公司 一种Hadoop在线扩容的方法
CN106815286A (zh) * 2016-12-05 2017-06-09 大唐网络有限公司 文件处理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050060608A1 (en) * 2002-05-23 2005-03-17 Benoit Marchand Maximizing processor utilization and minimizing network bandwidth requirements in throughput compute clusters
CN1728701A (zh) * 2004-07-30 2006-02-01 国家数字交换系统工程技术研究中心 采用单进程处理路由协议栈的方法
CN101496005A (zh) * 2005-12-29 2009-07-29 亚马逊科技公司 具有网络服务客户接口的分布式存储系统
CN102681899A (zh) * 2011-03-14 2012-09-19 金剑 云计算服务平台的虚拟计算资源动态管理系统
CN102882927A (zh) * 2012-08-29 2013-01-16 华南理工大学 一种云存储数据同步框架及其实现方法
CN104063425A (zh) * 2014-06-04 2014-09-24 五八同城信息技术有限公司 通过数据库中间件查询数据的方法和数据库中间件

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050060608A1 (en) * 2002-05-23 2005-03-17 Benoit Marchand Maximizing processor utilization and minimizing network bandwidth requirements in throughput compute clusters
CN1728701A (zh) * 2004-07-30 2006-02-01 国家数字交换系统工程技术研究中心 采用单进程处理路由协议栈的方法
CN101496005A (zh) * 2005-12-29 2009-07-29 亚马逊科技公司 具有网络服务客户接口的分布式存储系统
CN102681899A (zh) * 2011-03-14 2012-09-19 金剑 云计算服务平台的虚拟计算资源动态管理系统
CN102882927A (zh) * 2012-08-29 2013-01-16 华南理工大学 一种云存储数据同步框架及其实现方法
CN104063425A (zh) * 2014-06-04 2014-09-24 五八同城信息技术有限公司 通过数据库中间件查询数据的方法和数据库中间件

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105007172A (zh) * 2015-05-28 2015-10-28 杭州健港信息科技有限公司 一种hdfs高可用性方案的实现方法
CN105554132A (zh) * 2015-12-23 2016-05-04 浪潮集团有限公司 一种Hadoop在线扩容的方法
CN105554132B (zh) * 2015-12-23 2018-11-09 浪潮集团有限公司 一种Hadoop在线扩容的方法
CN106815286A (zh) * 2016-12-05 2017-06-09 大唐网络有限公司 文件处理方法
CN106815286B (zh) * 2016-12-05 2020-09-11 大唐网络有限公司 文件处理方法

Also Published As

Publication number Publication date
CN104601693B (zh) 2019-03-01

Similar Documents

Publication Publication Date Title
US9367410B2 (en) Failover mechanism in a distributed computing system
US8301600B1 (en) Failover recovery in a distributed data store
CN108200124B (zh) 一种高可用应用程序架构及构建方法
CN105100259A (zh) 一种分布式定时任务执行方法和系统
CN113032085A (zh) 云操作系统的管理方法、装置、服务器、管理系统及介质
CN113987064A (zh) 数据处理方法、系统及设备
CN104735098A (zh) 会话信息的控制方法和控制系统
CN105635216A (zh) 分布式应用的升级方法、设备和分布式系统
CN109739435B (zh) 文件存储和更新方法及装置
JP6008761B2 (ja) 自立分散型ネットワークシステム
CN102708150A (zh) 异步复制数据的方法、装置和系统
CN110765203B (zh) 一种容器MySQL主从同步及性能采集实现方法及系统
CN104601693A (zh) 一种分布式系统中响应操作指令的方法和装置
US11500812B2 (en) Intermediate file processing method, client, server, and system
CN103428288A (zh) 基于分区状态表和协调节点的副本同步方法
CN112477919A (zh) 一种适用于列车控制系统平台的动态冗余备份方法及系统
JP2012008934A (ja) 分散ファイルシステム及び分散ファイルシステムにおける冗長化方法
CN105007172A (zh) 一种hdfs高可用性方案的实现方法
CN110298031B (zh) 一种词典服务系统及模型版本一致性配送方法
CN116260827A (zh) 一种集群中领导者的选举方法、选举系统及相关装置
CN115237674A (zh) 基于opendaylight的SDN控制器的数据备份方法及设备、介质
CN109445717B (zh) 一种双机备份时的数据存储方法及装置
EP3719599A1 (en) Network-distributed process control system and method for managing redundancy thereof
CN112800029A (zh) 一种ceph集群整体迁移的方法
Bekas et al. Cross-layer management of a containerized NoSQL data store

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant