买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:本公开提供了一种计算节点的数据遍历方法。所述数据存储在多个数据分片中,所述方法包括:获取多个分片信息,每一个分片信息对应一个数据分片;以及与至少一个其他计算节点并行地基于多个分片信息执行读取‑遍历操作,以遍历读取多个分片信息对应的数据分片存储的数据,其中,不同的计算节点遍历读取不同的数据分片存储的数据。本公开还提供了一种计算节点的数据遍历装置及计算节点。
主权项:1.一种计算节点的数据遍历方法,所述数据存储在多个数据分片中,所述方法包括:获取多个分片信息,每一个分片信息对应一个数据分片;以及与至少一个其他计算节点并行地基于所述多个分片信息执行读取-遍历操作,以遍历读取所述多个分片信息对应的数据分片存储的数据,其中,不同的计算节点遍历读取不同的数据分片存储的数据;所述计算节点的数据遍历方法还包括:将所述多个分片信息写入预设的存储空间;其中,所述读取-遍历操作包括:自所述预设的存储空间读取多个分片信息中的一个分片信息;以及基于读取的所述分片信息,遍历读取所述分片信息对应的数据分片存储的数据;所述读取-遍历操作还包括:在自所述预设的存储空间读取了多个分片信息中的一个分片信息的情况下,将读取的所述分片信息由第一状态置为第二状态;以及在遍历读取完所述分片信息对应的数据分片存储的数据的情况下,将所述分片信息由第二状态置为第三状态;其中,所述分片信息的第一状态表示所述分片信息能够被所述计算节点或至少一个其他计算节点读取;所述分片信息的第二状态表示所述分片信息已被读取,不能够再被读取;所述分片信息的第三状态表示所述分片信息对应的数据分片存储的数据已被遍历读取完,该分片信息不能够再被读取。
全文数据:计算节点的数据遍历方法、装置及计算节点技术领域本公开涉及计算机技术领域,更具体地,涉及一种计算节点的数据遍历方法、装置及计算节点。背景技术随着计算机技术的快速发展,为了满足互联网、流媒体、高性能计算、能源等数据密集型、高并发访问的行业需求,集群存储方式应运而生。在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题:传统计算集群对存储集群中存储的数据通过以下方法遍历:首先调用数据存储系统遍历方法读取存储集群中存储的数据到ETL服务器的内存或磁盘上,再将数据分发给各计算节点。但是在此方法中,对于Redis、MySQL等存储集群,由于只支持单线程的顺序读取,因此无法发挥计算集群多节点的并发优势,因此数据遍历耗时长;再者,数据需要在网络上进行二次传输,遍历速度受限于ETL服务器的网络带宽和IO处理能力,因此数据遍历速度慢。发明内容有鉴于此,本公开提供了一种计算节点的数据遍历方法、装置及计算节点。本公开的第一方面提供了一种计算节点的数据遍历方法,所述数据存储在多个数据分片中,该方法包括:获取多个分片信息,每一个分片信息对应一个数据分片;以及与至少一个其他计算节点并行地基于多个分片信息执行读取-遍历操作,以遍历读取多个分片信息对应的数据分片存储的数据,其中,不同的计算节点遍历读取不同的数据分片存储的数据。根据本公开的实施例,上述方法还包括将多个分片信息写入预设的存储空间;上述读取-遍历操作包括:自预设的存储空间读取多个分片信息中的一个分片信息;以及基于读取的分片信息,遍历读取所述分片信息对应的数据分片存储的数据。根据本公开的实施例,上述多个数据分片存储在存储集群的多个存储节点上,每个存储节点存储有一个或多个数据分片,上述方法还包括:获取多个数据分片的存储节点信息;则将多个分片信息写入预设的存储空间包括:基于预设的分配规则及所述存储节点信息,将多个分片信息均匀排列,以使具有相同存储节点信息的不同数据分片的分片信息间隔排列;以及将均匀排列的多个分片信息顺序写入预设的存储空间;上述自预设的存储空间读取多个分片信息中的一个分片信息包括:自均匀排列的多个分片信息中顺序读取一个分片信息。根据本公开的实施例,上述读取-遍历操作还包括:在自预设的存储空间读取了多个分片信息中的一个分片信息的情况下,将读取的所述分片信息由第一状态置为第二状态;以及在遍历读取完分片信息对应的数据分片存储的数据的情况下,将分片信息由第二状态置为第三状态;其中,分片信息的第一状态表示分片信息能够被计算节点或至少一个其他计算节点读取;分片信息的第二状态表示分片信息已被读取,不能够再被读取;分片信息的第三状态表示分片信息对应的数据分片存储的数据已被遍历读取完,该分片信息不能够再被读取。根据本公开的实施例,上述方法还包括:判断自预设的存储空间读取了多个分片信息中的一个分片信息的其他计算节点是否为故障节点;以及在其他计算节点为故障节点的情况下,将该故障节点读取的分片信息由第二状态置为第一状态,以供计算节点或除该故障节点外的至少一个其他计算节点读取。根据本公开的实施例,上述方法还包括:判断多个分片信息是否均处于第三状态;在存在不处于第三状态的分片信息的情况下,间隔预设时间后返回重新判断;以及在多个分片信息均处于第三状态的情况下,完成所述数据的遍历。根据本公开的实施例,上述计算节点由计算节点及至少一个其他计算节点采用预设的选举规则选举得到;并且或者,在多个分片信息的数量大于计算节点和至少一个其他计算节点的节点总数的情况下,由计算节点和或至少一个其他计算节点循环执行上述的读取-遍历操作,以使多个分片信息对应的数据分片存储的数据均被遍历读取。本公开的第二方面提供了一种计算节点的数据遍历方法,所述数据存储在多个数据分片中,该方法包括:与至少一个其他计算节点并行地基于多个分片信息执行读取-遍历操作,以遍历读取多个分片信息对应的数据分片存储的数据,其中,多个分片信息由至少一个其他计算节点中的一个计算节点预先获取,每一个分片信息对应一个数据分片,不同的计算节点遍历读取不同的数据分片存储的数据。根据本公开的实施例,上述多个分片信息由至少一个其他计算节点中的一个计算节点预先获取后写入预设的存储空间中;上述读取-遍历操作包括:自预设的存储空间读取多个分片信息中的一个分片信息;以及基于读取的分片信息,遍历读取分片信息对应的数据分片存储的数据。根据本公开的实施例,上述读取-遍历操作还包括:在自预设的存储空间读取了多个分片信息中的一个分片信息的情况下,将读取的分片信息由第一状态置为第二状态;以及在遍历读取完分片信息对应的数据分片存储的数据的情况下,将分片信息由第二状态置为第三状态;其中,分片信息的第一状态表示分片信息能够被计算节点或至少一个其他计算节点读取;分片信息的第二状态表示分片信息已被读取,不能够再被读取;分片信息的第三状态表示分片信息对应的数据分片存储的数据已被遍历读取完,该分片信息不能够再被读取。根据本公开的实施例,上述预先获取多个分片信息的计算节点由计算节点及至少一个其他计算节点采用预设的选举规则选举得到;并且或者,在多个分片信息的数量大于计算节点和至少一个其他计算节点的节点总数的情况下,计算节点和或至少一个其他计算节点循环执行上述读取-遍历操作,以使多个分片信息对应的数据分片存储的数据均被遍历读取。本公开的第三方面提供了一种计算节点的数据遍历装置,所述数据存储在多个数据分片中,该装置包括:获取模块,获取多个分片信息,每一个分片信息对应一个数据分片;以及第一处理模块,基于多个分片信息执行读取-遍历操作,其中,计算节点的数据遍历装置与至少一个其他计算节点的数据遍历装置并行地基于多个分片信息执行读取-遍历操作,以遍历读取多个分片信息对应的数据分片存储的数据,不同的计算节点的数据遍历装置遍历读取不同的数据分片存储的数据。根据本公开的实施例,上述装置还包括写操作模块,用于将多个分片信息写入预设的存储空间;上述第一处理模块包括第一分片信息读取单元及第一数据遍历读取单元,第一分片信息读取单元用于自预设的存储空间读取多个分片信息中的一个分片信息;第一数据遍历读取单元用于基于读取的所述分片信息,遍历读取分片信息对应的数据分片存储的数据。根据本公开的实施例,上述多个数据分片存储在存储集群的多个存储节点上,每个存储节点存储有一个或多个所述数据分片;上述获取模块还用于获取多个所述数据分片的存储节点信息;上述写操作模块包括分片信息排列单元及写操作单元,分片信息排列单元用于基于预设的分配规则及所述存储节点信息,将多个分片信息均匀排列,以使具有相同存储节点信息的不同数据分片的分片信息间隔排列;写操作单元用于将均匀排列的多个分片信息顺序写入预设的存储空间;上述第一分片信息读取单元自均匀排列的多个分片信息中顺序读取一个分片信息。根据本公开的实施例,上述第一处理模块还包括第一更改单元,第一更改单元用于在第一分片信息读取单元自预设的存储空间读取了多个分片信息中的一个分片信息的情况下,将读取的分片信息由第一状态置为第二状态;以及在第一数据遍历读取单元遍历读取完分片信息对应的数据分片存储的数据的情况下,将分片信息由第二状态置为第三状态;其中,分片信息的第一状态表示分片信息能够被计算节点的数据遍历装置或至少一个其他计算节点的数据遍历装置读取;分片信息的第二状态表示分片信息已被读取,不能够再被读取;分片信息的第三状态表示分片信息对应的数据分片存储的数据已被遍历读取完,该分片信息不能够再被读取。根据本公开的实施例,上述第一处理模块还包括故障判断单元,用于判断自预设的存储空间读取了多个分片信息中的一个分片信息的其他计算节点的数据遍历装置是否为故障装置;上述第一更改单元还用于在其他计算节点的数据遍历装置为故障装置的情况下,将该故障节点的数据遍历装置读取的分片信息由第二状态置为第一状态,以供计算节点的数据遍历装置或除该故障节点外的至少一个其他计算节点的数据遍历装置读取。根据本公开的实施例,上述第一处理模块还包括状态判断单元,用于判断多个分片信息是否均处于第三状态;并在存在不处于第三状态的分片信息的情况下,间隔预设时间后返回重新判断;以及在多个分片信息均处于第三状态的情况下,完成所述数据的遍历。根据本公开的实施例,上述计算节点的数据遍历装置由计算节点的数据遍历装置及至少一个其他计算节点的数据遍历装置采用预设的选举规则选举得到;并且或者,在多个分片信息的数量大于计算节点的数据遍历装置和至少一个其他计算节点的的数据遍历装置的节装置总数的情况下,由计算节点的数据遍历装置和或至少一个其他计算节点的数据遍历装置循环执行上述读取-遍历操作,以使多个分片信息对应的数据分片存储的数据均被遍历读取。本公开的第四方面提供了一种计算节点的数据遍历装置,所述数据存储在多个数据分片中,该装置包括第二处理模块,用于基于多个分片信息执行读取-遍历操作,多个分片信息由至少一个其他计算节点中的一个计算节点的数据遍历装置预先获取,每一个分片信息对应一个数据分片。其中,所述计算节点的数据遍历装置与至少一个其他计算节点的数据遍历装置并行地基于多个分片信息执行上述读取-遍历操作,以遍历读取多个分片信息对应的数据分片存储的数据,不同的计算节点的数据遍历装置遍历读取不同的数据分片存储的数据。根据本公开的实施例,上述多个分片信息由至少一个其他计算节点中的一个计算节点的数据遍历装置预先获取后写入预设的存储空间中;上述第二处理模块包括第二分片信息读取单元及第二数据遍历读取单元,第二分片信息读取单元用于自预设的存储空间读取多个分片信息中的一个分片信息;第二数据遍历读取单元用于基于读取的分片信息,遍历读取分片信息对应的数据分片存储的数据。根据本公开的实施例,上述第二处理模块还包括第二更改单元,用于在第二分片信息读取单元自预设的存储空间读取了多个分片信息中的一个分片信息的情况下,将读取的分片信息由第一状态置为第二状态;以及在第二数据遍历读取单元遍历读取完分片信息对应的数据分片存储的数据的情况下,将分片信息由第二状态置为第三状态;其中,分片信息的第一状态表示分片信息能够被计算节点的数据遍历装置或至少一个其他计算节点的数据遍历装置读取;分片信息的第二状态表示分片信息已被读取,不能够再被读取;分片信息的第三状态表示分片信息对应的数据分片存储的数据已被遍历读取完,该分片信息不能够再被读取。根据本公开的实施例,上述预先获取多个分片信息的计算节点的数据遍历装置由计算节点的数据遍历装置及至少一个其他计算节点的数据遍历装置采用预设的选举规则选举得到;并且或者,在多个分片信息的数量大于计算节点的数据遍历装置和至少一个其他计算节点的的数据遍历装置的装置总数的情况下,计算节点的数据遍历装置和或至少一个其他计算节点的数据遍历装置循环执行上述读取-遍历操作,以使多个分片信息对应的数据分片存储的数据均被遍历读取。本公开的第五方面提供了一种计算节点,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当一个或多个程序分别被一个或多个处理器执行时,使得一个或多个处理器执行本公开第一方面提供的计算节点的数据遍历方法和本公开第二方面提供的计算节点的数据遍历方法。本公开的第六方面提供了一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行本公开第一方面提供的计算节点的数据遍历方法和本公开第二方面提供的计算节点的数据遍历方法。根据本公开的实施例,可以至少避免数据的遍历过程中存在的数据需要经过二次传输及只能单线程顺序读取的缺陷,并因此可以提高数据遍历速度,减小数据遍历的耗时。附图说明通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:图1示意性示出了根据本公开实施例的计算节点的数据遍历方法、装置及计算节点的系统架构;图2A示意性示出了根据本公开实施例的计算节点的数据遍历方法的方法流程图;图2B示意性示出了根据本公开另一实施例的计算节点的数据遍历方法的方法流程图;图2C示意性示出了根据本公开实施例的读取-遍历操作的流程图;图2D示意性示出了参考图2B描述的操作S230的操作流程图;图3示意性示出了根据本公开另一实施例的读取-遍历操作的流程图;图4示意性示出了根据本公开另一实施例的计算节点的数据遍历方法的方法流程图;图5示意性示出了根据本公开另一实施例的计算节点的数据遍历方法的方法流程图;图6A~图6B示意性示出了根据本公开另一实施例的读取-遍历操作的流程图;图7A~图7B示意性示出了根据本公开实施例的计算节点的数据遍历装置的结构框图;图8A~图8D示意性示出了根据本公开实施例的第一处理模块的结构框图;图9示意性示出了根据本公开实施例的写操作模块的结构框图;图10A~图10B示意性示出了根据本公开实施例的第二处理模块的结构框图;图11示意性示出了根据本公开实施例的适于实现上文描述的方法的方框图。具体实施方式以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语包括技术和科学术语具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和或具有A、B、C的系统等。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和或具有A、B、C的系统等。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。本公开的实施例提供了一种计算节点的数据遍历方法,所述数据存储在多个数据分片中,该方法包括:获取多个分片信息,每一个分片信息对应一个数据分片;以及与至少一个其他计算节点并行地基于多个分片信息执行读取-遍历操作,以遍历读取多个分片信息对应的数据分片存储的数据,其中,不同的计算节点遍历读取不同的数据分片存储的数据。本公开的实施例还提供了另一种计算节点的数据遍历方法,所述数据存储在多个数据分片中,该方法包括:与至少一个其他计算节点并行地基于多个分片信息执行读取-遍历操作,以遍历读取多个分片信息对应的数据分片存储的数据,其中,多个分片信息由至少一个其他计算节点中的一个计算节点预先获取,每一个分片信息对应一个数据分片,不同的计算节点遍历读取不同的数据分片存储的数据。图1示意性示出了根据本公开实施例的计算节点的数据遍历方法、装置及计算节点的系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。如图1所示,根据该实施例的系统架构100中可以包括存储集群和计算集群,存储集群包括存储节点101、102、103、104,计算集群包括计算节点105、106、107。存储集群与计算集群之间通过网络连接,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等,且各个计算节点之间互相连接在一起构成分布式或并行的计算集群。计算节点105、106、107可以通过网络与存储节点101、102、103、104交互,以对存储节点进行数据的写入、读取或删除等操作。存储集群中存储的数据例如可采用数据分片存储策略进行存储,数据分片存储策略是指将数据按照特定的分片算法,分成多个数据分片,并将这些数据分片分别存储到不同的存储节点上进行存储。从而使得存储空间不受单节点存储容量的限制,通过增减存储节点的数量动态调整存储空间,且支持并发的数据读写。传统上,通过在存储集群与计算集群之间设置ETL服务器来进行数据的读取,具体为:首先调用数据存储系统遍历方法读取存储集群中的数据到ETL服务器内存或者磁盘上,再将数据分发到计算集群的各计算节点,完成数据的读取。在此过程中,由于存储集群提供的默认遍历方法只支持单线程顺序读取,因此无法发挥集群的多节点并发优势;再者,数据需要先读取到ETL服务器,再分发到计算集群的各个节点,因此数据需要在网络上进行二次传输,降低了数据读取速率;且整个数据读取过程的读取速率受限于ETL服务器的网络带宽和IO处理能力,而ETL的处理速度较慢,且若在数据遍历读取过程中,ETL服务器发生故障,则会导致数据遍历失败。鉴于以上问题,如图1所示,本公开的实施例,在计算集群中,通过预设的选举规则选举得到起协调管理作用的计算节点105获取存储集群中各数据分片的分片信息,并通过分布式协调服务架构与其他计算节点实现信息共享,则计算集群中的各计算节点105、106、107通过读取共享的分片信息,即可直接对存储集群中与读取的分片信息对应的数据分片存储的数据进行遍历读取。且多个计算节点可读取不同的分片信息,并行地对相应的数据分片存储的数据进行遍历读取,因此可有效地提高数据遍历速度,且理论上遍历速度为传统遍历方法的“MIN数据分片数量,计算节点数量”倍,例如,在一个具有10个数据分片的存储集群和10个节点的计算集群环境中,数据遍历耗时只是传统方法的十分之一。需要说明的是,本公开实施例所提供的计算节点的数据遍历方法一般可以由计算节点105、106、107执行。相应地,本公开实施例所提供的计算节点的数据遍历装置一般可以设置于计算节点105、106、107中。应该理解,图1中的存储节点及计算节点的数目以及各种连接关系的类型仅仅是示意性的。根据实现需要,可以具有任意数目的存储节点及计算节点,以及任意类型的连接关系。图2A示意性示出了根据本公开实施例的计算节点的数据遍历方法的方法流程图。如图2A所示,本公开的一个方面提供了一种计算节点的数据遍历方法,该方法包括操作S210~S220。在操作S210,获取多个分片信息,每一个分片信息对应一个数据分片。上述数据存储在多个数据分片中,每个数据分片都对应有一个分片信息,以唯一的对应数据分片。根据本公开的实施例,根据本公开的实施例,该计算节点属于计算集群中的一个计算节点,例如可以为参考图1描述的计算节点105。计算集群中还包括除该计算节点外的至少一个其他计算节点,例如参考图1描述的计算节点106、107。获取多个分片信息的计算节点例如可通过预设的选举规则,由计算集群中的所有计算节点选举得到,为方便描述,以下称该选举得到的计算节点为管理节点。其中,本公开实施例不对该预设的选举规则进行限定,预设的选举规则例如可采用FastLeaderElection算法等。根据本公开的实施例,在计算集群首次初始化或者之前选举得到的管理节点发生故障,计算集群中的任一一个计算节点在尝试与管理节点通信时发现管理节点不存在或不可用时,触发选举,从而选举得到新的管理节点。根据本公开的实施例,计算集群中的任意一个计算节点都可提供接口供客户端提交遍历任务,该遍历任务中携带有遍历条件,至少一个其他计算节点在接收到客户端提交的遍历任务时,通过与管理节点的通信,根据该遍历任务,向管理节点发起遍历请求。则该管理节点在获取分片信息时,基于该遍历请求包括遍历条件,自存储集群存储的多个数据分片获取分片信息。根据本公开的实施例,在多个计算节点提供的接口均收到客户端提交的遍历任务时,该管理节点在接收到多个遍历任务后,可在分布式协调服务架构中创建多个任务节点,每个遍历任务对应有一个任务节点,则该管理节点根据多个遍历任务携带的遍历条件自多个数据分片读取分片信息,并将返回的分片信息根据与遍历任务的匹配性,分别将与各个遍历任务匹配的多个分片信息依次写入各个任务节点的子节点中,则该多个任务节点可以排列成任务节点目录,每个任务节点又包括多个子节点,每个子节点写入有一个分片信息。本公开实施例不对分布式协调服务架构进行限定,例如,该分布式协调服务架构可以为Zookeeper简称zk分布式协调服务等,以实现计算集群中多个计算节点之间的信息共享。在操作S220,与至少一个其他计算节点并行地基于所述多个分片信息执行读取-遍历操作。根据本公开的实施例,读取-遍历操作具体可以为:读取多个分片信息中的一个分片信息,然后遍历读取分片信息对应的数据分片存储的数据。其中,所述至少一个其他计算节点即为:计算集群中除了获取分片信息的计算节点外的其他计算节点。由于该计算节点及至少一个其他计算节点能够基于已获取的分片信息并行地执行读取-遍历操作,以遍历读取多个分片信息对应的数据分片存储的数据,因此,本公开实施例的方案,能够实现数据的并发遍历,极大的提高数据遍历的速度。再者,由于计算节点基于分片信息直接自存储集群中遍历读取数据,避免了数据经过ETL服务器的二次中转,因此可以进一步提高数据遍历的速度。图2B示意性示出了根据本公开另一实施例的计算节点的数据遍历方法的方法流程图。如图2B所示,根据本公开实施例,图2A描述的计算节点的数据遍历方法在操作S210~操作S220之间,还可包括S230。在操作S230,将所述多个分片信息写入预设的存储空间。根据本公开的实施例,获取多个分片信息的计算节点可以将多个分片信息写入预设的存储空间,该预设的存储空间例如可以为共享空间,以供计算集群中的各个计算节点访问。具体地,该预设的存储空间例如可以为分布式协调服务架构提供的存储空间,从而实现计算集群中各个计算节点之间的信息共享,则计算集群中的各个计算节点可以自该存储空间中读取分片信息,以基于读取的分片信息进行相应数据分片中数据的遍历读取。例如,管理节点将分片信息写入了Zookeeper中的任务节点中的子节点中,则在对单个遍历任务进行遍历时,计算集群中的各个计算节点会自对应的任务节点的子节点读取分片信息。图2C示意性示出了根据本公开实施例的读取-遍历操作的流程图。如图2C所示,在获取分片信息的计算节点将分片信息写入预设的存储空间的情况下,读取-遍历操作相应地包括操作S221~S222。在操作S221,自预设的存储空间读取多个分片信息中的一个分片信息;在操作S222,基于读取的分片信息,遍历读取分片信息对应的数据分片存储的数据。根据本公开的实施例,在多个分片信息的数量小于计算集群中可用计算节点的个数管理节点和至少一个其他计算节点的节点总数的情况下,计算集群中多个计算节点等于多个分片信息的数量经由一次上述的读取-遍历操作,即可完成对多个分片信息对应的数据分片存储的数据的遍历读取。当然,本公开实施例并不限定具体的遍历读取过程,例如还可由多个计算节点中的部分计算节点小于分片信息的数量经由多次读取-遍历操作的循环,以使多个分片信息均被读取,且对应的数据分片存储的数据均被遍历读取。根据本公开的实施例,在多个分片信息的数量大于计算集群中可用计算节点的个数管理节点和至少一个其他计算节点的节点总数的情况下,该管理节点和至少一个其他计算节点则循环执行读取-遍历操作。具体地,在其中一个计算节点自Zookeeper中任务节点的子节点读取了该子节点写入的分片信息后,即对该分片信息对应的数据分片存储的数据进行遍历读取;在完成遍历读取后,该计算节点则返回自Zookeeper中任务节点的其他子节点未被读取过的其他子节点读取该其他子节点写入的分片信息,并对相应的数据分片存储的数据进行遍历读取,其他计算节点也按此方式循环执行读取-遍历操作,直至Zookeeper中任务节点的所有子节点写入的分片信息均被读取过,以保证多个分片信息对应的数据分片存储的数据均被遍历读取。根据本公开的实施例,若Zookeeper中存在多个任务节点时,计算集群中可用的计算节点则依次对多个任务节点的遍历任务进行遍历,在对一个任务节点的所述子节点写入的分片信息对应的数据分片存储的数据完成遍历读取后,再读取下一任务节点的子节点写入的分片信息,以对下一任务节点的遍历任务进行遍历。图2D示意性示出了参考图2B描述的操作S230的操作流程图。根据本公开的实施例,多个数据分片可存储在存储集群的多个存储节点上,且每个存储节点存储有一个或多个数据分片。则,参考图2A中的操作S210还可以为操作S210’,获取多个分片信息及多个数据分片的存储节点信息,所述存储节点信息能够表示某分片信息对应的数据分片存储在哪个存储节点。如图2D所示,操作S230可包括操作S231和操作S232。在操作S231,基于预设的分配规则及存储节点信息,将多个分片信息均匀排列,以使具有相同存储节点信息的不同数据分片的分片信息间隔排列;在操作S232,将均匀排列的多个分片信息顺序写入预设的存储空间。具体地,所述预设的分配规则的原则为:使处于同一存储节点的数据分片的分片信息在排列队列中相隔设置,优选使相隔的距离尽量最远。该预设的分配规则例如可以为以下简单的均匀分配策略:将分片信息按照其对应的数据分片所在存储节点组织成一个二维数组,具有相同存储节点信息的数据分片的分片信息位于同一行,具有不同存储节点信息的数据分片的分片信息位于不同行。例如可将多个分片信息排列为一个分片信息列表,则在对多个分片信息进行均匀排列时,可以自二维数组的第一行第一列开始,依次从二维数组中第一列的每一行取一个分片信息放在列表的末尾;在二维数组中第一列的分片信息均排列完后,再从第一行第二列的分片信息开始,依次从第二列的每一行取一个分片信息放在列表的末尾,依次类推,直至将二维数据中的所有分片信息均排列至分片信息列表为止。对于存在多个遍历任务的情况下,则对每个遍历任务的多个分片信息均进行均匀排列,以使每个遍历任务中具有相同存储节点信息的不同数据分片的分片信息间隔排列。则在操作S232,将分片信息列表中排列的多个分片信息按顺序依次写入预设的存储空间,对于Zookeeper分布式协调服务架构,则将多个分片信息根据分片信息列表中的顺序依次写入任务节点下的子节点中。而对于存在多个任务节点的情况下,则将分片信息列表中的分片信息根据对应关系写入对应的任务节点的子节点中,不同的分片信息列表中的分片信息写入不同的任务节点的子节点中。在读取-遍历操作中,自预设的存储空间读取多个分片信息中的一个分片信息,可以为自均匀排列的多个分片信息中顺序读取一个分片信息。具体地,即为自任务节点中按子节点的排列顺序依次读取分片信息。本公开实施例通过上述设置,可以使得存储于同一存储节点的多个数据分片对应的分片信息在任务节点中的位置尽量最远,则在读取预设的存储空间中的分片信息时,可避免多个计算节点读取的不同分片信息为同一存储节点存储的不同数据分片的分片信息的情况,因此,可避免在对分片信息对应的数据分片存储的数据进行遍历读取时,多个计算节点对同一存储节点进行访问的情况,从而避免了单个存储节点负荷过重导致的遍历读取速度较低的缺陷,从而尽可能的提高数据遍历的效率。为了保证数据存储的稳定性,避免存储集群中某个计算节点发生故障导致的部分数据丢失,可以将数据分片在不同的存储节点上保存多份,则在获取分片信息时,不可避免的会存在相同的分片信息。因此,在对获取的多个分片信息进行均匀排列时,可进行查重,以保证具有不同存储节点信息的多个相同的分片信息在均匀排列后仅保存一个。还可将多个分片信息排列为一个分片信息集合,由于集合不可重复的特性,多个相同分片信息中只有被排列的第一个分片分片信息可以被列入分片信息集合中。通过上述方式,即可保证存储集群中存储数据的稳定性,也可避免在后续的遍历读取过程中,对存储在不同存储节点的相同数据的重复遍历读取,从而避免了不必要的额外开销,提高计算集群遍历数据的效率。图3示意性示出了根据本公开另一实施例的读取-遍历操作的流程图。如图3所示,该读取-遍历操作除了操作S221~S222外,还包括操作S223及操作S224。其中,操作S223在操作S221与操作S222之间执行,操作S224在执行完操作S223之后执行。在操作S223,将读取的所述分片信息由第一状态置为第二状态;在操作S224,在遍历读取完的情况下,将所述分片信息由第二状态置为第三状态。根据本公开的实施例,在所述计算节点获取多个分片信息后,将该多个分片信息写入预设的存储空间时,将该多个分片信息置为初始状态即第一状态,以表示该多个分片信息能够被计算集群中的任一计算节点计算节点或至少一个其他计算节点读取;分片信息的第二状态则表示,该分片信息已被计算集群中的任一个计算节点读取,不能够再被计算集群中的计算节点读取;分片信息的第三状态表示,该分片信息对应的数据分片存储的数据已被遍历读取完,且该分片信息不能够再被计算集群中的计算节点读取。通过上述对分片信息状态的设置,可避免多个分片信息中任一分片信息对应的数据分片存储的数据被计算集群重复遍历读取,且可避免部分分片信息未被读取的情况,从而在保证读取数据完整性的前提下,可尽可能的减少数据遍历的耗时。图4示意性示出了根据本公开另一实施例的计算节点的数据遍历方法的方法流程图。如图4所示,该方法包括操作S410~S440。在操作S410,获取预设的存储空间存储的多个分片信息的状态;在操作S420,判断多个分片信息是否均处于第三状态;在存在不处于第三状态的分片信息的情况下,执行操作S430,间隔预设时间后返回执行操作S410,以对多个分片信息的状态重新进行判断;在所述多个分片信息均处于第三状态的情况下,执行操作S440,完成所述数据的遍历。根据本公开的实施例,上述操作S410与操作S420还可合并为一个操作步骤,直接判断多个分片信息是否均处于第三状态,而无需预先获取多个分片信息的状态,而是对预设的存储空间存储的多个分片信息按顺序逐个判断,若判断发现不处于第三状态的分片信息则中断判断,间隔预设时间后,再从该发现不处于第三状态的分片信息处开始,重新判断是否存在不处于第三状态的分片信息,直至未发现不处于第三状态的分片信息为止,说明多个分片信息均处于第三状态,则终止判断,完成数据的遍历。通过上述操作,可以确保多个分片信息对应的数据分片存储的数据均被遍历读取,避免了对部分数据的遗漏,保证了数据读取的完整性。图5示意性示出了根据本公开另一实施例的计算节点的数据遍历方法的方法流程图。如图5所示,该方法除了操作S210~S220外,还包括操作S510和操作S520。在操作S510,判断自所述预设的存储空间读取了多个分片信息中的一个分片信息的其他计算节点是否为故障节点;在其他故障节点为故障节点的情况下,执行操作S520,将该故障节点读取的分片信息由第二状态置为第一状态。根据本公开的实施例,在计算节点自预设的存储空间读取分片信息时,例如可将其标识性信息写入该读取的分片信息的存储位置处,且计算节点在与预设的存储空间进行初始交互时,会在预设的存储空间创建一个临时节点,该临时节点与该计算节点的标识性信息相匹配;当该计算节点与预设的存储空间的交互结束或该计算节点出现故障导致不能交互时,该临时节点就会消失。因此,在判断读取分片信息的计算节点是否为故障节点时,可先检查该分片信息是否处于第二状态,若是,再判断预设的存储空间是否存在与该分片信息的存储位置处写入的计算节点的标识性信息相匹配的临时节点,若存在,则说明该计算节点正常工作,若不存在,则说明该计算节点未遍历读取完所述分片信息对应的数据分片的数据,且该计算节点为故障节点。在其他计算节点为故障节点的情况下,由管理节点负责将该其他计算节点读取的分片信息由第二状态置为第一状态,以供该管理节点或其他的正常计算节点读取。根据本公开的实施例,通过上述故障节点的判断监测,能够有效避免故障节点遍历数据失败,且其他节点因无法获取相应的分片信息,从而无法对此部分数据进行遍历的缺陷,极大的提高了计算集群的高可用性,进一步保证了数据遍历读取的完整性。本公开的另一方面还提供了一种计算节点的数据遍历方法。根据本公开的实施例,所述数据存储在多个数据分片中,该数据遍历方法包括以下操作:与至少一个其他计算节点并行地基于多个分片信息执行读取-遍历操作,以遍历读取多个分片信息对应的数据分片存储的数据。根据本公开的实施例,所述计算节点为计算集群中的计算节点,该计算节点可以为参考图1中的计算节点106、107;还可以为参考图2A~图2B描述的至少一个其他计算节点中的计算节点。根据本公开的实施例,多个分片信息是由计算集群中的至少一个其他计算节点中的一个计算节点预先获取的,该预先获取分片信息的计算节点例如可以为参考图1中的计算节点105,还可以为参考图2A~参考图5描述的计算节点的数据遍历方法中的计算节点。根据本公开的实施例,至少一个其他计算节点中用于获取分片信息的计算节点是由计算集群计算节点及至少一个其他计算节点采用预设的选举规则选举得到的。本公开实施例不对该预设的选举规则进行限定,预设的选举规则例如可采用FastLeaderElection算法等。根据本公开的实施例,在计算集群首次初始化或者之前选举得到的管理节点发生故障,计算集群中的任一一个计算节点在尝试与管理节点通信时发现管理节点不存在或不可用时,触发选举,从而选举得到新的管理节点。根据本公开的实施例,每一个分片信息对应一个数据分片。且在所述计算节点与至少一个其他计算节点遍历读取数据时,不同的计算节点遍历读取的是不同的数据分片存储的数据。本公开实施例的计算节点的数据遍历方法,由于与至少一个其他计算节点并行地执行读取-遍历操作,因此能够极大的提高数据遍历的速度;再者由于所述计算节点根据分片信息可直接自对应的数据分片存储的数据进行遍历读取,因此避免了数据经过ETL服务器的二次中转,可以进一步提高数据遍历的速度。根据本公开的实施例,多个分片信息是由至少一个其他计算节点中的一个计算节点预先获取后写入预设的存储空间中的,因此可以供所述计算节点及至少一个其他计算节点直接读取,以根据读取的分片信息进行读取-遍历操作。图6A~图6B示意性示出了根据本公开另一实施例的读取-遍历操作的流程图。根据本公开的实施例,如图6A所示,上述读取-遍历操作包括操作S611~操作S612。在操作S611,自预设的存储空间读取多个分片信息中的一个分片信息;在操作S612,基于读取的分片信息,遍历读取分片信息对应的数据分片存储的数据。根据本公开的实施例,该读取-遍历操作类似于参考图2C描述的读取-遍历操作,在此不再赘述。根据本公开的实施例,如图6B所示,上述读取-遍历操作例如还可包括操作S613和操作S614。在自预设的存储空间读取了多个分片信息中的一个分片信息的情况下,执行操作S613,将读取的分片信息由第一状态置为第二状态;以及在遍历读取完分片信息对应的数据分片存储的数据的情况下,执行操作S614,将分片信息由第二状态置为第三状态。其中,分片信息在由至少一个其他计算节点中的一个计算节点写入预设的存储空间时,即被置为第一状态,以表示分片信息能够被计算节点或至少一个其他计算节点读取;分片信息的第二状态表示该分片信息已被读取,不能够再被读取;分片信息的第三状态表示该分片信息对应的数据分片存储的数据已被遍历读取完,该分片信息不能够再被读取。根据本公开的实施例,该读取-遍历操作类似于参考图3描述的读取-遍历操作,在此不再赘述。根据本公开的实施例,在多个分片信息的数量小于计算集群中可用计算节点的个数计算节点和至少一个其他计算节点的节点总数的情况下,计算集群中多个计算节点等于多个分片信息的数量经由一次上述的读取-遍历操作,即可完成对多个分片信息对应的数据分片存储的数据的遍历读取。当然,本公开实施例并不限定具体的遍历读取过程,例如还可由多个计算节点中的部分计算节点小于分片信息的数量经由多次读取-遍历操作的循环,以使多个分片信息均被读取,且对应的数据分片存储的数据均被遍历读取。根据本公开的实施例,在多个分片信息的数量大于计算集群中可用计算节点的个数计算节点和至少一个其他计算节点的节点总数的情况下,该计算节点和至少一个其他计算节点则循环执行读取-遍历操作。具体地,在其中一个计算节点自Zookeeper中任务节点的子节点读取了该子节点写入的分片信息后,即对该分片信息对应的数据分片存储的数据进行遍历读取;在完成遍历读取后,该计算节点则返回自Zookeeper中任务节点的其他子节点未被读取过的其他子节点读取该其他子节点写入的分片信息,并对相应的数据分片存储的数据进行遍历读取,其他计算节点也按此方式循环执行读取-遍历操作,直至Zookeeper中任务节点的所有子节点写入的分片信息均被读取过,以使多个分片信息对应的数据分片存储的数据均被遍历读取。图7A~图7B示意性示出了根据本公开实施例的计算节点的数据遍历装置的结构框图。如图7A所示,本公开的另一方面提出一种计算节点的数据遍历装置,该装置700包括获取模块710及第一处理模块720。其中,所述数据存储在多个数据分片中。其中,获取模块710用于获取多个分片信息,每一个分片信息对应一个数据分片。第一处理模块720用于基于多个分片信息执行读取-遍历操作。其中,该计算节点的数据遍历装置能够与至少一个其他计算节点的数据遍历装置并行地基于多个分片信息执行读取-遍历操作,以遍历读取多个分片信息对应的数据分片存储的数据。且不同的计算节点的数据遍历装置遍历读取不同的数据分片存储的数据。可以理解的是,该计算节点的数据遍历装置可以设置于所述计算节点中。根据本公开的实施例,该获取模块710和第一处理模块720分别用于执行参考图2A描述的操作S210及操作S220,在此不再赘述。根据本公开的实施例,如图7B所示,该计算节点的数据遍历装置700还可包括写操作模块730。其中,该写操作模块730用于将获取模块710获取的多个分片信息写入预设的存储空间。根据本公开的实施例,该写操作模块730例如可用于执行参考图2B描述的操作S230,在此不再赘述。图8A~图8D示意性示出了根据本公开实施例的第一处理模块的结构框图。如图8A所示,第一处理模块720可以包括第一分片信息读取单元721和第一数据遍历读取单元722。第一分片信息读取单元721用于执行读取-遍历操作中的读取操作,即自预设的存储空间读取多个分片信息中的一个分片信息;第一数据遍历读取单元722用于执行读取-遍历操作中的遍历操作,即基于读取的所述分片信息,遍历读取分片信息对应的数据分片存储的数据。根据本公开的实施例,该第一分片信息读取单元721和第一数据遍历读取单元722可用于分别执行参考图2C描述的操作S221和操作S222,在此不再赘述。根据本公开的实施例,如图8B所示,第一处理模块720还可以包括第一更改单元723。该第一更改单元723用于在第一分片信息读取单元721自预设的存储空间读取了多个分片信息中的一个分片信息的情况下,将读取的分片信息由第一状态置为第二状态;以及在第一数据遍历读取单元722遍历读取完分片信息对应的数据分片存储的数据的情况下,将分片信息由第二状态置为第三状态。其中,分片信息在由写操作模块730写入预设定存储空间时,被置为第一状态,以表示该分片信息能够被计算节点的数据遍历装置或至少一个其他计算节点的数据遍历装置读取;分片信息的第二状态表示该分片信息已被读取,不能够再被读取;分片信息的第三状态表示该分片信息对应的数据分片存储的数据已被遍历读取完,该分片信息不能够再被读取。根据本公开的实施例,该第一更改单元723可用于执行参考图3描述的操作S223和操作S224,在此不再赘述。根据本公开的实施例,如图8C所示,该第一处理模块720例如还可包括故障判断单元724。故障判断单元724用于判断自所述预设的存储空间读取了多个分片信息中的一个分片信息的其他计算节点的数据遍历装置是否为故障装置。在该其他计算节点的数据遍历装置为故障装置点的情况下,上述第一更改单元723还用于将该故障装置读取的分片信息由第二状态置为第一状态,以供计算节点的数据遍历装置或除该故障节点的数据遍历装置外的至少一个其他计算节点的数据遍历装置读取。根据本公开的实施例,该故障判断单元724例如可用于执行参考图5描述的操作S510,第一更改单元723例如还可用于执行参考图5描述的操作S520,在此不再赘述。根据本公开的实施例,如图8D所示,该第一处理模块720例如还可包括状态判断单元725。该状态判断单元725用于判断多个分片信息是否均处于第三状态,并且在存在不处于第三状态的分片信息的情况下,间隔预设时间后返回重新判断,以及在多个分片信息均处于第三状态的情况下,完成数据的遍历。根据本公开的实施例,该状态判断单元725例如可用于执行参考图4描述的操作S410~操作S440,在此不再赘述。根据本公开的实施例,上述的多个数据分片存储在存储集群的多个存储节点上,每个存储节点存储有一个或多个数据分片。根据本公开的实施例,获取模块710还用于获取多个数据分片的存储节点信息。例如,该获取模块710还可用于执行参考图2B描述的操作S210’,在此不再赘述。图9示意性示出了根据本公开实施例的写操作模块的结构框图。如图9所示,写操作模块730可包括分片信息排列单元731和写操作单元732。分片信息排列单元731用于基于预设的分配规则及存储节点信息,将多个分片信息均匀排列,以使具有相同存储节点信息的不同数据分片的分片信息间隔排列;写操作单元732用于将均匀排列的多个分片信息顺序写入预设的存储空间。则第一分片信息读取单元721自均匀排列的多个分片信息中顺序读取一个分片信息。根据本公开的实施例,该分片信息排列单元731和写操作单元732分别用于执行参考图2D描述的操作S231和操作S232,在此不再赘述。根据本公开的实施例,计算节点的数据遍历装置可设置于所述计算节点中,该计算节点的数据遍历装置以下称为管理节点是由计算集群中的各个计算节点的数据遍历装置所述计算节点的数据遍历装置及至少一个其他计算节点的数据遍历装置采用预设的选举规则选举得到。本公开实施例不对该预设的选举规则进行限定,预设的选举规则例如可采用FastLeaderElection算法等。根据本公开的实施例,在计算集群首次初始化或者之前选举得到的管理节点的数据遍历装置发生故障时,计算集群中的任一一个计算节点的数据遍历装置在尝试与管理节点通信时发现管理节点不存在或不可用时,触发选举,从而选举得到新的管理节点。根据本公开的实施例,在多个分片信息的数量小于计算集群中可用计算节点的的数据遍历装置个数所述计算节点的数据遍历装置和至少一个其他计算节点的数据遍历装置的装置总数的情况下,计算集群中多个计算节点的数据遍历装置等于多个分片信息的数量经由一次上述的读取-遍历操作,即可完成对多个分片信息对应的数据分片存储的数据的遍历读取。当然,本公开实施例并不限定具体的遍历读取过程,例如还可由多个计算节点中的部分计算节点的数据遍历装置小于分片信息的数量经由多次读取-遍历操作的循环,以使多个分片信息均被读取,且对应的数据分片存储的数据均被遍历读取。根据本公开的实施例,在多个分片信息的数量大于计算集群中可用计算节点的数据遍历装置的个数所述计算节点的数据遍历装置和至少一个其他计算节点的的数据遍历装置的装置总数的情况下,该计算节点的数据遍历装置和至少一个其他计算节点的数据遍历装置则循环执行读取-遍历操作。具体地,在其中一个计算节点的数据遍历装置自Zookeeper中任务节点的子节点读取了该子节点写入的分片信息后,即对该分片信息对应的数据分片存储的数据进行遍历读取;在完成遍历读取后,该计算节点的数据遍历装置则返回自Zookeeper中任务节点的其他子节点未被读取过的其他子节点读取该其他子节点写入的分片信息,并对相应的数据分片存储的数据进行遍历读取,其他计算节点的数据遍历装置也按此方式循环执行读取-遍历操作,直至Zookeeper中任务节点的所有子节点写入的分片信息均被读取过,以使多个分片信息对应的数据分片存储的数据均被遍历读取。根据本公开的实施例的获取模块710、第一处理模块720、写操作模块730、第一分片信息读取单元721、第一数据遍历读取单元722、第一更改单元723、故障判断单元724、状态判断单元725、分片信息排列单元731及写操作单元732中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列FPGA、可编程逻辑阵列PLA、片上系统、基板上的系统、封装上的系统、专用集成电路ASIC,或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。例如,获取模块710、第一处理模块720、写操作模块730、第一分片信息读取单元721、第一数据遍历读取单元722、第一更改单元723、故障判断单元724、状态判断单元725、分片信息排列单元731及写操作单元732中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块710、第一处理模块720、写操作模块730、第一分片信息读取单元721、第一数据遍历读取单元722、第一更改单元723、故障判断单元724、状态判断单元725、分片信息排列单元731及写操作单元732中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列FPGA、可编程逻辑阵列PLA、片上系统、基板上的系统、封装上的系统、专用集成电路ASIC,或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块710、第一处理模块720、写操作模块730、第一分片信息读取单元721、第一数据遍历读取单元722、第一更改单元723、故障判断单元724、状态判断单元725、分片信息排列单元731及写操作单元732中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。图10A~图10B示意性示出了根据本公开实施例的第二处理模块的结构框图。本公开的另一方面提出一种计算节点的数据遍历装置。如图10A所示,该装置包括第二处理模块1010。该第二处理模块1010用于基于多个分片信息执行读取-遍历操作,该多个分片信息由至少一个其他计算节点中的一个计算节点的数据遍历装置预先获取,每一个分片信息对应一个数据分片。其中,该计算节点的数据遍历装置能够与至少一个其他计算节点的数据遍历装置并行地基于多个分片信息执行读取-遍历操作,以遍历读取多个分片信息对应的数据分片存储的数据,不同的计算节点的数据遍历装置遍历读取不同的数据分片存储的数据。根据本公开的实施例,多个分片信息由至少一个其他计算节点中的一个计算节点的数据遍历装置预先获取后写入预设的存储空间中。该至少一个其他计算节点中的一个计算节点的数据遍历装置以下称为管理节点是计算集群中的各个计算节点的数据遍历装置所述计算节点的数据遍历装置及至少一个其他计算节点的数据遍历装置采用预设的选举规则选举得到。本公开实施例不对该预设的选举规则进行限定,预设的选举规则例如可采用FastLeaderElection算法等。根据本公开的实施例,在计算集群首次初始化或者之前选举得到的管理节点发生故障时,计算集群中的任一一个计算节点的数据遍历装置在尝试与管理节点的数据遍历装置通信时发现管理节点不存在或不可用时,触发选举,从而选举得到新的管理节点。根据本公开的实施例,如图10A所示,该第二处理模块1010包括第二分片信息读取单元1011和第二数据遍历读取单元1012。第二分片信息读取单元1011用于自预设的存储空间读取多个分片信息中的一个分片信息,第二数据遍历读取单元1012用于基于读取的分片信息,遍历读取分片信息对应的数据分片存储的数据。根据本公开的实施例,第二分片信息读取单元1011和第二数据遍历读取单元1012可以用于分别执行参考图6A描述的操作S611和操作S612,在此不再赘述。根据本公开的实施例,如图10B所示,第二处理模块1010还可以包括第二更改单元1013。第二更改单元1013用于在第二分片信息读取单元1011自预设的存储空间读取了多个分片信息中的一个分片信息的情况下,将读取的所述分片信息由第一状态置为第二状态;以及在第二数据遍历读取单元1012遍历读取完分片信息对应的数据分片存储的数据的情况下,将分片信息由第二状态置为第三状态。其中,分片信息在由管理节点的数据遍历装置写入预设的存储空间时被置为第一状态,以表示该分片信息能够被计算节点的数据遍历装置或至少一个其他计算节点的数据遍历装置读取;分片信息的第二状态表示该分片信息已被读取,不能够再被读取;分片信息的第三状态表示该分片信息对应的数据分片存储的数据已被遍历读取完,该分片信息不能够再被读取。根据本公开的实施例,该第二更改单元例如可以用于执行参考图6B描述的操作S613和操作S614,在此不再赘述。根据本公开的实施例,在多个分片信息的数量小于计算集群中可用计算节点的数据遍历装置的个数所述计算节点的数据遍历装置和至少一个其他计算节点的数据遍历装置的装置总数的情况下,计算集群中多个计算节点的数据遍历装置等于多个分片信息的数量经由一次上述的读取-遍历操作,即可完成对多个分片信息对应的数据分片存储的数据的遍历读取。当然,本公开实施例并不限定具体的遍历读取过程,例如还可由多个计算节点中的部分计算节点的数据遍历装置小于分片信息的数量经由多次读取-遍历操作的循环,以使多个分片信息均被读取,且对应的数据分片存储的数据均被遍历读取。根据本公开的实施例,在多个分片信息的数量大于计算集群中可用计算节点的的数据遍历装置的个数所述计算节点的数据遍历装置和至少一个其他计算节点的的数据遍历装置的装置总数的情况下,该计算节点的数据遍历装置和至少一个其他计算节点的数据遍历装置则循环执行读取-遍历操作。具体地,在其中一个计算节点自Zookeeper中任务节点的子节点读取了该子节点写入的分片信息后,即对该分片信息对应的数据分片存储的数据进行遍历读取;在完成遍历读取后,该计算节点的数据遍历装置则返回自Zookeeper中任务节点的其他子节点未被读取过的其他子节点读取该其他子节点写入的分片信息,并对相应的数据分片存储的数据进行遍历读取,其他计算节点的数据遍历装置也按此方式循环执行读取-遍历操作,直至Zookeeper中任务节点的所有子节点写入的分片信息均被读取过,以使多个分片信息对应的数据分片存储的数据均被遍历读取。根据本公开的实施例的第二处理模块1010、写操作模块730、第二分片信息读取单元1011、第二数据遍历读取单元1012及第二更改单元1013中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列FPGA、可编程逻辑阵列PLA、片上系统、基板上的系统、封装上的系统、专用集成电路ASIC,或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。例如,第二处理模块1010、第二分片信息读取单元1011、第二数据遍历读取单元1012及第二更改单元1013中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第二处理模块1010、第二分片信息读取单元1011、第二数据遍历读取单元1012及第二更改单元1013中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列FPGA、可编程逻辑阵列PLA、片上系统、基板上的系统、封装上的系统、专用集成电路ASIC,或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第二处理模块1010、第二分片信息读取单元1011、第二数据遍历读取单元1012及第二更改单元1013中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。图11示意性示出了根据本公开实施例的适于实现上文描述的方法的方框图。图11示出的计算节点仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。如图11所示,根据本公开实施例的计算节点1100包括处理器1101,其可以根据存储在只读存储器ROM1102中的程序或者从存储部分1108加载到随机访问存储器RAM1103中的程序而执行各种适当的动作和处理。处理器1101例如可以包括通用微处理器例如CPU、指令集处理器和或相关芯片组和或专用微处理器例如,专用集成电路ASIC,等等。处理器1101还可以包括用于缓存用途的板载处理器。处理器1101可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。在RAM1103中,存储有计算节点1100操作所需的各种程序和数据。处理器1101、ROM1102以及RAM1103通过总线1104彼此相连。处理器1101通过执行ROM1102和或RAM1103中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM1102和RAM1103以外的一个或多个存储器中。处理器1101也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。根据本公开的实施例,计算节点1100还可以包括输入输出IO接口1105,输入输出IO接口1105也连接至总线1104。计算节点1100还可以包括连接至IO接口1105的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管CRT、液晶显示器LCD等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至IO接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和或从可拆卸介质1111被安装。在该计算机程序被处理器1101执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备装置系统中所包含的;也可以是单独存在,而未装配入该设备装置系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法流程。根据本公开的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器RAM、只读存储器ROM、可擦式可编程只读存储器EPROM或闪存、光纤、便携式紧凑磁盘只读存储器CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。例如,根据本公开的实施例,计算机可读介质可以包括上文描述的ROM1102和或RAM1103和或ROM1102和RAM1103以外的一个或多个存储器。附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和或权利要求中记载的特征可以进行多种组合或或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和或权利要求中记载的特征可以进行多种组合和或结合。所有这些组合和或结合均落入本公开的范围。以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
权利要求:1.一种计算节点的数据遍历方法,所述数据存储在多个数据分片中,所述方法包括:获取多个分片信息,每一个分片信息对应一个数据分片;以及与至少一个其他计算节点并行地基于所述多个分片信息执行读取-遍历操作,以遍历读取所述多个分片信息对应的数据分片存储的数据,其中,不同的计算节点遍历读取不同的数据分片存储的数据。2.根据权利要求1所述的方法,还包括:将所述多个分片信息写入预设的存储空间;所述读取-遍历操作包括:自所述预设的存储空间读取多个分片信息中的一个分片信息;以及基于读取的所述分片信息,遍历读取所述分片信息对应的数据分片存储的数据。3.根据权利要求2所述的方法,其中,多个所述数据分片存储在存储集群的多个存储节点上,每个存储节点存储有一个或多个所述数据分片,所述方法还包括:获取多个所述数据分片的存储节点信息;将所述多个分片信息写入预设的存储空间包括:基于预设的分配规则及所述存储节点信息,将所述多个分片信息均匀排列,以使具有相同存储节点信息的不同数据分片的分片信息间隔排列;以及将均匀排列的所述多个分片信息顺序写入预设的存储空间;自所述预设的存储空间读取多个分片信息中的一个分片信息包括:自均匀排列的所述多个分片信息中顺序读取一个分片信息。4.根据权利要求2所述的方法,其中,所述读取-遍历操作还包括:在自所述预设的存储空间读取了多个分片信息中的一个分片信息的情况下,将读取的所述分片信息由第一状态置为第二状态;以及在遍历读取完所述分片信息对应的数据分片存储的数据的情况下,将所述分片信息由第二状态置为第三状态;其中,所述分片信息的第一状态表示所述分片信息能够被所述计算节点或至少一个其他计算节点读取;所述分片信息的第二状态表示所述分片信息已被读取,不能够再被读取;所述分片信息的第三状态表示所述分片信息对应的数据分片存储的数据已被遍历读取完,该分片信息不能够再被读取。5.根据权利要求4所述的方法,还包括:判断自所述预设的存储空间读取了多个分片信息中的一个分片信息的其他计算节点是否为故障节点;以及在所述其他计算节点为故障节点的情况下,将该故障节点读取的所述分片信息由第二状态置为第一状态,以供所述计算节点或除该故障节点外的至少一个其他计算节点读取。6.根据权利要求4所述的方法,还包括:判断所述多个分片信息是否均处于第三状态;在存在不处于第三状态的分片信息的情况下,间隔预设时间后返回重新判断;在所述多个分片信息均处于第三状态的情况下,完成所述数据的遍历。7.根据权利要求1所述的方法,其中:所述计算节点由所述计算节点及至少一个其他计算节点采用预设的选举规则选举得到;并且或者在所述多个分片信息的数量大于所述计算节点和至少一个其他计算节点的节点总数的情况下,由所述计算节点和或至少一个其他计算节点循环执行所述读取-遍历操作,以使所述多个分片信息对应的数据分片存储的数据均被遍历读取。8.一种计算节点的数据遍历方法,所述数据存储在多个数据分片中,所述方法包括:与至少一个其他计算节点并行地基于多个分片信息执行读取-遍历操作,以遍历读取所述多个分片信息对应的数据分片存储的数据,其中,所述多个分片信息由至少一个其他计算节点中的一个计算节点预先获取,每一个分片信息对应一个数据分片,不同的计算节点遍历读取不同的数据分片存储的数据。9.根据权利要求8所述的方法,其中:所述多个分片信息由至少一个其他计算节点中的一个计算节点预先获取后写入预设的存储空间中;所述读取-遍历操作包括:自所述预设的存储空间读取多个分片信息中的一个分片信息;以及基于读取的所述分片信息,遍历读取所述分片信息对应的数据分片存储的数据。10.根据权利要求9所述的方法,其中,所述读取-遍历操作还包括:在自所述预设的存储空间读取了多个分片信息中的一个分片信息的情况下,将读取的所述分片信息由第一状态置为第二状态;以及在遍历读取完所述分片信息对应的数据分片存储的数据的情况下,将所述分片信息由第二状态置为第三状态;其中,所述分片信息的第一状态表示所述分片信息能够被所述计算节点或至少一个其他计算节点读取;所述分片信息的第二状态表示所述分片信息已被读取,不能够再被读取;所述分片信息的第三状态表示所述分片信息对应的数据分片存储的数据已被遍历读取完,该分片信息不能够再被读取。11.根据权利要求8所述的方法,其中:预先获取所述多个分片信息的计算节点,由所述计算节点及至少一个其他计算节点采用预设的选举规则选举得到;并且或者在所述多个分片信息的数量大于所述计算节点和至少一个其他计算节点的节点总数的情况下,所述计算节点和或至少一个其他计算节点循环执行所述读取-遍历操作,以使所述多个分片信息对应的数据分片存储的数据均被遍历读取。12.一种计算节点的数据遍历装置,所述数据存储在多个数据分片中,所述装置包括:获取模块,获取多个分片信息,每一个分片信息对应一个数据分片;以及第一处理模块,基于所述多个分片信息执行读取-遍历操作,其中,所述计算节点的数据遍历装置与至少一个其他计算节点的数据遍历装置并行地基于所述多个分片信息执行所述读取-遍历操作,以遍历读取所述多个分片信息对应的数据分片存储的数据,不同的计算节点的数据遍历装置遍历读取不同的数据分片存储的数据。13.根据权利要求12所述的装置,还包括:写操作模块,将所述多个分片信息写入预设的存储空间;所述第一处理模块包括:第一分片信息读取单元,自所述预设的存储空间读取多个分片信息中的一个分片信息;以及第一数据遍历读取单元,基于读取的所述分片信息,遍历读取所述分片信息对应的数据分片存储的数据。14.根据权利要求13所述的装置,其中:多个所述数据分片存储在存储集群的多个存储节点上,每个存储节点存储有一个或多个所述数据分片;所述获取模块,获取多个所述数据分片的存储节点信息;所述写操作模块包括:分片信息排列单元,基于预设的分配规则及所述存储节点信息,将所述多个分片信息均匀排列,以使具有相同存储节点信息的不同数据分片的分片信息间隔排列;以及写操作单元,将均匀排列的所述多个分片信息顺序写入预设的存储空间;所述第一分片信息读取单元,自均匀排列的所述多个分片信息中顺序读取一个分片信息。15.根据权利要求13所述的装置,其中,所述第一处理模块还包括第一更改单元:在所述第一分片信息读取单元自所述预设的存储空间读取了多个分片信息中的一个分片信息的情况下,将读取的所述分片信息由第一状态置为第二状态;以及在所述第一数据遍历读取单元遍历读取完所述分片信息对应的数据分片存储的数据的情况下,将所述分片信息由第二状态置为第三状态;其中,所述分片信息的第一状态表示所述分片信息能够被所述计算节点的数据遍历装置或至少一个其他计算节点的数据遍历装置读取;所述分片信息的第二状态表示所述分片信息已被读取,不能够再被读取;所述分片信息的第三状态表示所述分片信息对应的数据分片存储的数据已被遍历读取完,该分片信息不能够再被读取。16.根据权利要求15所述的装置,其中,所述第一处理模块还包括:故障判断单元,判断自所述预设的存储空间读取了多个分片信息中的一个分片信息的其他计算节点的数据遍历装置是否为故障装置;所述第一更改单元,在所述其他计算节点的数据遍历装置为故障装置的情况下,将该故障装置读取的所述分片信息由第二状态置为第一状态,以供所述计算节点的数据遍历装置或除该故障节点外的至少一个其他计算节点的数据遍历装置读取。17.根据权利要求15所述的装置,其中,所述第一处理模块还包括状态判断单元:判断所述多个分片信息是否均处于第三状态;在存在不处于第三状态的分片信息的情况下,间隔预设时间后返回重新判断;在所述多个分片信息均处于第三状态的情况下,完成所述数据的遍历。18.根据权利要求12所述的装置,其中:所述计算节点的数据遍历装置由所述计算节点的数据遍历装置及至少一个其他计算节点的数据遍历装置采用预设的选举规则选举得到;并且或者在所述多个分片信息的数量大于所述计算节点的数据遍历装置和至少一个其他计算节点的数据遍历装置的装置总数的情况下,由所述计算节点的数据遍历装置和或至少一个其他计算节点的数据遍历装置循环执行所述读取-遍历操作,以使所述多个分片信息对应的数据分片存储的数据均被遍历读取。19.一种计算节点的数据遍历装置,所述数据存储在多个数据分片中,所述装置包括:第二处理模块,基于多个分片信息执行读取-遍历操作,所述多个分片信息由至少一个其他计算节点中的一个计算节点的数据遍历装置预先获取,每一个分片信息对应一个数据分片,其中,所述计算节点的数据遍历装置与至少一个其他计算节点的数据遍历装置并行地基于所述多个分片信息执行所述读取-遍历操作,以遍历读取所述多个分片信息对应的数据分片存储的数据,不同的计算节点的数据遍历装置遍历读取不同的数据分片存储的数据。20.根据权利要求19所述的装置,其中:所述多个分片信息由至少一个其他计算节点中的一个计算节点的数据遍历装置预先获取后写入预设的存储空间中;所述第二处理模块包括:第二分片信息读取单元,自所述预设的存储空间读取多个分片信息中的一个分片信息;以及第二数据遍历读取单元,基于读取的所述分片信息,遍历读取所述分片信息对应的数据分片存储的数据。21.根据权利要求20所述的装置,其中,所述第二处理模块还包括第二更改单元:在所述第二分片信息读取单元自所述预设的存储空间读取了多个分片信息中的一个分片信息的情况下,将读取的所述分片信息由第一状态置为第二状态;以及在所述第二数据遍历读取单元遍历读取完所述分片信息对应的数据分片存储的数据的情况下,将所述分片信息由第二状态置为第三状态,其中,所述分片信息的第一状态表示所述分片信息能够被所述计算节点的数据遍历装置或至少一个其他计算节点的数据遍历装置读取;所述分片信息的第二状态表示所述分片信息已被读取,不能够再被读取;所述分片信息的第三状态表示所述分片信息对应的数据分片存储的数据已被遍历读取完,该分片信息不能够再被读取。22.根据权利要求19所述的装置,其中:预先获取所述多个分片信息的计算节点的数据遍历装置,由所述计算节点的数据遍历装置及至少一个其他计算节点的数据遍历装置采用预设的选举规则选举得到;并且或者在所述多个分片信息的数量大于所述计算节点的数据遍历装置和至少一个其他计算节点的的数据遍历装置的装置总数的情况下,所述计算节点的数据遍历装置和或至少一个其他计算节点的数据遍历装置循环执行所述读取-遍历操作,以使所述多个分片信息对应的数据分片存储的数据均被遍历读取。23.一种计算节点,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序分别被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~11任意一项所述的方法。24.一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行权利要求1~11任意一项所述的方法。
百度查询: 北京京东尚科信息技术有限公司 北京京东世纪贸易有限公司 计算节点的数据遍历方法、装置及计算节点
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。