CN116301561A - 分布式系统的数据处理方法、系统、节点和存储介质 - Google Patents

分布式系统的数据处理方法、系统、节点和存储介质 Download PDF

Info

Publication number
CN116301561A
CN116301561A CN202111531957.5A CN202111531957A CN116301561A CN 116301561 A CN116301561 A CN 116301561A CN 202111531957 A CN202111531957 A CN 202111531957A CN 116301561 A CN116301561 A CN 116301561A
Authority
CN
China
Prior art keywords
storage node
target
host
node
target client
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.)
Pending
Application number
CN202111531957.5A
Other languages
English (en)
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN202111531957.5A priority Critical patent/CN116301561A/zh
Priority to PCT/CN2022/136682 priority patent/WO2023109554A1/zh
Publication of CN116301561A publication Critical patent/CN116301561A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例涉及通信技术领域,公开了一种分布式系统的数据处理方法、系统、管理节点和存储介质,上述数据处理方法包括:接收所述分布式系统中的目标客户端发送的数据读写的操作指令;其中,所述分布式系统包括多个宿主机,每个所述宿主机中部署有客户端和存储节点;确定所述目标客户端的宿主机;查询所述目标客户端的宿主机上存在的第一目标存储节点;将所述第一目标存储节点的信息返回至所述目标客户端,以供所述目标客户端在所述第一目标存储节点进行数据读写,避免了分布式系统部署在云化平台上失去数据本地性,有利于减小对网络带宽的消耗。

Description

分布式系统的数据处理方法、系统、节点和存储介质
技术领域
本申请实施例涉及通信技术领域,特别涉及一种分布式系统的数据处理方法、系统、管理节点和存储介质。
背景技术
随着移动互联网、物联网、5G、智能终端以及人工智能高速发展,数据正在迅速膨胀,大数据在实际生产中的应用也越来越广泛;各种各样的大数据框架地位越来越重要,比如Apache Hadoop就已经成为实际工业生产中大数据的事实标准;由于传统的分布式系统是将计算和存储资源绑定的,导致资源利用率低、数据吞吐量受限以及不易于弹性扩容等问题;而云化平台,其灵活的应用创建与部署、在云平台与OS上分发的可移植性、资源隔离及资源利用率高等特性,能够解决传统的分布式系统面临的上述问题。
但是,分布式系统部署在云化平台上也会面临新的问题,其中最主要的问题就是失去了数据本地性,这样则会增加对网络带宽的消耗。
发明内容
本申请实施例的主要目的在于提出一种分布式系统的数据处理方法、系统、管理节点和存储介质,避免了分布式系统部署在云化平台上失去数据本地性,有利于减小对网络带宽的消耗。
为至少实现上述目的,本申请实施例提供了一种分布式系统的数据处理方法,所述分布式系统部署在云化平台中,所述方法应用于管理节点,包括:接收所述分布式系统中的目标客户端发送的数据读写的操作指令;其中,所述分布式系统包括多个宿主机,每个所述宿主机中部署有客户端和存储节点;确定所述目标客户端的宿主机;查询所述目标客户端的宿主机上存在的第一目标存储节点;将所述第一目标存储节点的信息返回至所述目标客户端,以供所述目标客户端在所述第一目标存储节点进行数据读写。
为实现上述目的,本申请实施例还提供了一种分布式系统的数据处理系统,其特征在于,所述分布式系统部署在云化平台中,所述数据处理系统包括:管理节点和分布式系统,所述分布式系统包括多个宿主机,每个所述宿主机中部署有客户端和存储节点;所述管理节点,用于接收所述分布式系统中的目标客户端发送的数据读写的操作指令,确定所述目标客户端的宿主机;所述管理节点,还用于查询所述目标客户端的宿主机上存在的第一目标存储节点,将所述第一目标存储节点的信息返回至所述目标客户端;所述目标客户端,用于在所述第一目标存储节点进行数据读写。
为实现上述目的,本申请实施例还提供了一种管理节点,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的分布式系统的数据处理方法。
为至少实现上述目的,本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的分布式系统的数据处理方法。
本申请实施例提供的部署在云化平台中的分布式系统的数据处理方法,接收分布式系统中的目标客户端发送的数据读写的操作指令,分布式系统包括多个宿主机,每个宿主机中部署有客户端和存储节点;确定目标客户端的宿主机;查询目标客户端的宿主机上存在的第一目标存储节点;将第一目标存储节点的信息返回至目标客户端,以供目标客户端在第一目标存储节点进行数据读写,以保证分布式系统在读写过程中可以优先选择与目标客户端的宿主机的存储节点进行读写,即优先选择本地节点进行读写,充分利用本地存储资源,避免了分布式系统部署在云化平台上失去数据本地性,有利于减小对网络带宽的消耗,提升存储性能。
附图说明
图1是本申请实施例中提到的在云化平台下客户端读取存储节点上的数据的示意图;
图2是本申请实施例中提到的云化环境下部署的分布式系统的示意图;
图3是本申请实施例中提到的一种分布式系统的数据处理方法的流程示意图;
图4是本申请实施例中提到的datanode的网络拓扑图;
图5是本申请实施例中提到的另一种分布式系统的数据处理方法的实施流程图;
图6是本申请实施例中提到的在分布式存储系统中写入数据的实施流程图;
图7是本申请实施例中提到的在分布式存储系统中写入数据的架构示意图;
图8是本申请实施例中提到的机架拓扑网络图;
图9是本申请实施例中提到的对于计算指令的处理流程的示意图;
图10是本申请实施例中提到的在分布式资源管理调度系统中执行计算任务的实施流程图;
图11是本申请实施例中提到的在分布式资源管理调度系统中执行计算任务的架构示意图;
图12是本申请实施例中提到的管理节点的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
为便于对本申请实施例的理解,下面首先对本申请中所涉及的相关技术进行简要说明:
数据本地性是Google为了解决当时网络带宽瓶颈,创造性地提出计算和存储耦合的架构,将计算的代码移动到数据所在的地方,而不是将数据传输到计算节点。后来Hadoop也是完全照搬了这个架构,数据本地化是分布式框架一个非常重要的特性,可以用来保证整体性能。本实施例中,分布式框架也可以理解为分布式系统或分布式集群。
参阅图1,图1是在云化平台下客户端读取存储节点上的数据的示例,分布式系统中共有3个存储节点,分别为Node1、Node2、Node3,3个客户端分别为:Client1、Client2、Client3由容器实例Pod分别封装于3台物理主机;物理主机也可以理解为宿主机。对于传统的直接部署在物理主机集群上的分布式框架,当Client1读取数据时,会优先选择同物理主机的Node1,但是在云化环境下Client1无法识别Node1与其部署在同一物理机,因此会随机选择存储节点,比如Node2;这样则会大大增加网络带宽的消耗,失去了分布式框架原生数据本地性的性能优势。
随着网络技术的进步,网络的性能发生了巨大的变化,从之前主流1Gb到100Gb,增长了100倍,而同时期的硬盘驱动器(Hard Disk Drive,HDD)的性能基本没有太大变化,单盘容量增大了很多。大数据的资源瓶颈已经从网络带宽转为磁盘IO。这使得网络带宽不再成为性能瓶颈,所以失去了数据本地性对性能下降也有限,但原先走本地的数据改为走网络传输,增加了对带宽的消耗,所以性能依然会有大幅下降,网络带宽如果成为瓶颈,会导致计算和存储资源利用不充分。
本申请实施例中,为了解决云化平台下部署的分布式系统,失去数据本地性会导致性能下降的问题,提供了一种分布式系统的数据处理方法,应用于管理节点,该分布式系统部署在云化平台中,分布式系统包括多个宿主机即物理主机,每个宿主机中部署有客户端和存储节点,该分布式系统的示意图可以参考图1。
分布式系统中的物理主机的数量可以大于或等于3。在云化环境下每个节点可以通过容器实现,则物理主机可以理解为承载容器的宿主机,每台物理主机上可以有多个容器,比如用于实现数据的存储功能的存储容器,用于实现计算功能的计算容器,客户端即为发送读写操作指令及计算操作指令的发起者。云化环境下部署的分布式系统的示意图可以参考图2。
图2中的云化管理平台可以简称为云化平台,云化平台可以为平台即服务(Platform as a service,PaaS)、容器编排系统Kubernetes或者其他云化平台,云化平台用于对分布式服务进行管理和调度,分布式服务可以为Hadoop、ZDH、CDH,同时提供该服务的云化部署脚本或工具。分布式服务可以为分布式读写服务或是分布式计算服务。上述的Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。
在一个实施例中,多个物理主机中存在1个或2个物理主机中部署有管理节点,应用于该管理节点的分布式系统的数据处理方法的流程示意图可以参考图3,包括:
步骤101:接收分布式系统中的目标客户端发送的数据读写的操作指令。
步骤102:确定目标客户端的宿主机。
步骤103:查询目标客户端的宿主机上存在的第一目标存储节点。
步骤104:将第一目标存储节点的信息返回至目标客户端,以供目标客户端在第一目标存储节点进行数据读写。
本实施例中,目标客户端可以映射到其实际所在的宿主机即物理主机,以保证分布式系统在读写过程中可以优先选择与目标客户端处于同一物理主机的存储节点进行读写,即优先选择本地节点进行读写,充分利用本地存储资源,避免了分布式系统部署在云化平台上失去数据本地性,有利于减小对网络带宽的消耗,提升存储性能。
在步骤101中,目标客户端为分布式系统中发送操作指令的客户端,管理节点接收目标客户端发送的数据读写的操作指令,该操作指令可以为读操作指令也可以为写操作指令。
在一个实施例中,对于分布式存储系统(Hadoop Distributed File System,HDFS),管理节点可以为名字节点namenode,namenode可以接收目标客户端发送的读操作指令或写操作指令。
在步骤102中,管理节点确定目标客户端的宿主机,即目标客户端所在的物理主机。
在一个实施例中,步骤102的实现方式为:获取目标客户端的通用唯一识别码(Universally Unique Identifier,UUID)UUID;其中,UUID中添加有目标客户端的宿主机的IP;管理节点解析目标客户端的UUID,确定目标客户端的宿主机。目标客户端在进行配置时,可以将其所在的宿主机的IP添加在UUID中。其中,UUID是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。
客户端在进行本地配置时,可以在本地配置中的UUID中加入宿主机的IP,以便在读写数据时,确定与客户端的宿主机具有相同IP地址的存储节点。宿主机即物理主机,物理主机与存储节点具有相同的IP地址,物理主机的IP地址和存储节点的机架名称相同,说明该存储节点位于该物理主机内。本实施例中,与客户端的宿主机具有相同IP地址的存储节点可以理解为:与目标客户端所在的物理主机具有相同IP地址的存储节点。
在一个实施例中,步骤102的实现方式为:管理节点获取目标客户端的配置信息,配置信息中包括该目标客户端所在的宿主机的IP地址,管理节点通过解析目标客户端的配置信息,可以得到目标客户端所在的宿主机的IP地址,从而确定目标客户端所在的宿主机。
在步骤103中,管理节点可以在分布式系统中的各个存储节点中查询目标客户端的宿主机上存在的第一目标存储节点。其中,目标客户端的宿主机存在的存储节点即为第一目标存储节点。
在步骤104中,管理节点将第一目标存储节点的信息返回至目标客户端,以供目标客户端在第一目标存储节点进行数据读写。可以理解的是,如果管理节点接收到的为写操作指令,则目标客户端在第一目标存储节点写数据,如果管理节点接收到的为读操作指令,则目标客户端在第一目标存储节点读数据。
在一个实施例中,管理节点接收到目标客户端发送的写操作指令,在分布式系统的各存储节点中确定第一个执行写操作指令的第一存储节点,并控制目标客户端将数据写入第一存储节点;其中,第一存储节点为目标客户端所在的物理主机中的存储节点。即,在写数据的过程中,优先将数据写入与目标客户端位于同一物理主机的存储节点中。然后,再将数据依次写入其他物理主机中的存储节点。最终,写完数据后,目标客户端向namenode返回数据写入完成的消息,由namenode更新元数据信息记录操作日志。
比如,写操作指令为目标客户端提交的上传文件指令,hdfs dfs-put file1/dst,将本地文件file1上传至分布式文件系统HDFS上,则本实施例中优先将文件写入目标客户端所在的物理主机中的存储节点datanode,再将文件写入其他的datanode。
在一个实施例中,管理节点接收到目标客户端发送的读操作指令,可以在分布式系统的各存储节点中确定存储有待读取数据的第二存储节点,并控制目标客户端从第二存储节点读取所述待读取数据数据。即,在读数据的过程中,优先在本地读取,在本地读取即在目标客户端所在的物理主机中的存储节点读取。
在一个实施例中,存储节点对应有机架名称,机架名称为存储节点的Pod所在的宿主机的IP;步骤103查询目标客户端的宿主机上存在的第一目标存储节点的实现方式可以为:获取分布式系统中的各存储节点对应的机架名称;根据各存储节点对应的机架名称和目标客户端的宿主机的IP,查询目标客户端的宿主机上存在的第一目标存储节点。比如,将各存储节点对应的机架名称和目标客户端的宿主机的IP进行比较,将具有与宿主机的IP相同的机架名称的存储节点作为第一目标存储节点。本实施例中,namenode可以确定每一个存储节点datanode所属的机架的机架名称,每个存储节点的机架名称即为该存储节点的Pod所在的物理主机的IP。每个物理主机作为一个机架,同一物理主机上的所有节点挂载在同一个机架上。各个存储节点在启动时,可以将各自的机架名称上报给管理节点。
在一个实施例中,步骤103查询目标客户端的宿主机上存在的第一目标存储节点的实现方式可以为:获取机架信息;其中,机架信息包括:每个宿主机中部署的存储节点的信息;根据机架信息,查询目标客户端的宿主机上存在的第一目标存储节点。
本实施例中,由于机架信息包括每个宿主机中部署的存储节点的信息,即通过机架信息可以准确得知目标客户端的宿主机上部署的存储节点的信息。从而,根据机架信息可以准确的确定各存储节点中部署在目标客户端的宿主机中的存储节点,即可以准确的确定上述的第一目标存储节点。
在一个实施例中,上述的获取机架信息包括:获取分布式系统中的各存储节点上报的归属关系;其中,归属关系为各存储节点与各存储节点的宿主机的归属关系;根据归属关系,构建存储节点的网络拓扑;根据所述网络拓扑,获取机架信息。上述过程可以理解为机架感知的过程,基于机架感知管理节点namenode可以得到如图4所示的datanode网络拓扑图。其中,D1、R1是交换机,最底层是datanode。H1的parent是R1,R1的parent是D1。namenode可以通过各存储节点与各存储节点的宿主机的归属关系,确定上述的第一目标存储节点。
在一个实施例中,在根据网络拓扑,获取机架信息之后,还包括:通过预设接口获取各存储节点启动的监听器监听到的信息;其中,各存储节点在启动时,在各存储节点对应的进程内启动监听器;在根据监听到的信息确定机架信息更新的情况下,更新机架信息。
在一个实施例中,预设接口可以为rest接口,则在根据网络拓扑,获取机架信息之后,通过rest接口获取各存储节点启动的监听器监听到的信息,各存储节点在启动时,在各存储节点对应的进程所在的容器实例Pod内启动监听器;在根据监听到的信息确定Pod的位置信息更新的情况下,根据更新后的Pod的位置信息,更新机架信息。其中,容器实例Pod为云化环境下的最小单位,Pod可以安装任何需要的角色,比如,Pod可以为存储节点,也可以为计算节点,还可以为客户端。
由于,容器编排系统Kubernetes中的Pod与所在物理主机的关系非永久固定,可能在Pod销毁重新创造后拥有同样的PodIP,但落在了不同的物理主机上,因此本实施例中可以实时监控Pod的变化情况,并更新整体的机架信息。Kubernetes对于Pod提供了rest接口可以用来监控Pod的位置变化,利用该rest接口查看pod的位置是否有变动,从而有利于能够获得最新的机架信息,以提高选择的第一目标存储节点的准确性。
在一个实施例中,分布式系统的数据处理方法的实施流程图可以参阅图5,包括:
步骤201:接收分布式系统中的目标客户端发送的数据读写的操作指令。
步骤202:确定目标客户端与分布式系统中各存储节点之间的距离。
步骤203:根据距离,从小到大对各存储节点进行排序,得到排序列表;其中,排序列表中排在首位的为第一目标存储节点。
步骤204:将排序列表返回至目标客户端,以供目标客户端按照排序列表在各存储节点进行数据读写。
本实施例中,通过根据各存储节点与目标客端之间的距离,对各存储节点进行排序得到排序列表,使得读写数据时可以根据排序列表优先在第一目标存储节点进行读写,再就近依次写入或读取排在第一目标存储节点之后的存储节点,有利于降低存储时的网络开销,增加系统的整体吞吐量。对于写数据操作指令,在第一目标存储节点写数据后,根据排序列表再在第一目标存储节点之后的存储节点写数据。对于读数据操作指令,优先在本地的第一目标存储节点读取数据,如果在第一目标存储节点上读取不到需要的数据,可以按照上述的排序列表再在排在第一目标存储节点之后的存储节点上读取,依次类推,直到读取到需要的数据,
在步骤202中,管理节点可以获取目标客户端与分布式系统中的各个物理主机之间的位置关系,根据该位置关系得到目标客户端与各个物理主机中的存储节点的距离。
在步骤203中,可以理解的是,由于第一目标存储节点与目标客户端位于同一物理主机,则第一目标存储节点与目标客户端之间的距离最近。
在步骤204中,管理节点可以在控制目标客户端将数据写入第一目标存储节点之后,控制目标客户端按照排序列表,将数据依次写入排序列表中的第一目标存储节点之后的各存储节点。具体的,目标客户端在将数据传输至第一目标存储节点之后,第一目标存储节点可以将接收的数据写入本地仓库,同时将接收的数据传输至第一目标存储节点(简称存储节点1)之后的存储节点2,存储节点2将来自存储节点1的数据写入本地仓库,同时将接收的数据传输至存储节点2之后的存储节点3,依次类推,直到所有存储节点都写入数据。
在一个实施例中,以分布式存储系统HDFS为例,目标客户端提交一条上传文件指令(即写操作指令),hdfs dfs-put file1/dst,将本地文件file1上传至分布式文件系统HDFS上。本实施例中,优先将待写入的数据即本地文件file1写在与目标客户端位于同一物理主机的datanode,再将本地文件file1写入到其他datanode节点,以实现存储本地化。在分布式存储系统中写入数据的实施流程图参阅图6,包括:
步骤301:目标客户端向管理节点发送上传文件指令。
参阅图7,图7为在分布式存储系统中写入数据的架构示意图,管理节点namenode对要上传的文件进行检查,判断是否可以上传,并向目标客户端返回是否可以上传的检查结果。
步骤302:目标客户端得到允许上传文件的检查结果后,读取目标客户端的配置信息,并将配置信息发送给管理节点。
步骤303:管理节点根据目标客户端的的配置信息,查询存储节点信息,并通过云化平台提供的rest接口查看Pod的位置是否有变动,获取最新的机架信息。
步骤304:管理节点解析目标客户端的UUID,获取宿主机IP,通过机架信息来查询该宿主机上存在的存储节点。
参阅图8,图8为一些实施例中的机架拓扑网络图。管理节点解析UUID获得了宿主机1即物理主机1的信息,进而得到了同宿主机的存储节点H2,同理还会获得其他两个宿主机上的存储节点H5、存储节点H8;然后将H2、H5、H8按照和目标客户端的距离大小,进行排序得到排序列表,并将该排序列表返回给目标客户端。
步骤305:目标客户端按照排序列表中的顺序,将文件写入各存储节点。
目标客户端可以将文件分解为若干个数据块进行传输,在开始传输数据块之前会把数据块缓存在本地,当缓存大小超过了一个数据块的大小,目标客户端就会和排序列表中的第一个存储节点(H2)建立连接开始流式的传输数据,H2会一小部分一小部分的接收数据然后写入本地仓库,同时会把这些数据传输到第二个存储节点(H5),H5也同样一小部分一小部分的接收数据并写入本地仓库,同时传输给第三个存储节点(H8),依次类推。
步骤306:当确认一个数据块传输完成,管理节点更新元数据信息记录操作日志。
参阅图7,数据块从存储节点1传输到存储节点2再传输到存储节点3,存储节点3写完数据块将写完的消息返回至存储节点2,再由存储节点2将写完的消息返回给存储节点1,存储节点1将写完的消息返回给管理节点namenode。这样逐级调用和返回之后,待这个数据块传输完成,目标客户端可以向namenode发送数据块传输完成的消息,这时候namenode才会更新元数据信息记录操作日志。
第一个数据块传输完成后,会使用同样的方式传输其余的数据块,直到整个文件上传完成。
在一个实施例中,云化平台可以提供对机架的实时监控服务;每个存储节点和计算节点在启动时会在进程所在Pod内启动监听器,以便通过rest接口获取机架当前状态及查询宿主机信息;存储节点启动时会构建节点的网络拓扑,每个物理主机作为一个机架,同一物理主机上的所有节点挂载在同一个机架上;大数据组件客户端在本地配置中的UUID中加入宿主机IP,以便在读写数据时比对客户端和服务端的宿主机IP是否一致;当Pod挂掉再成功启动后,可能会迁移到其他宿主机,因此每次Pod重启都会通知云化平台更新机架信息;当确定了机架信息后,管理节点会按照节点距离将存储节点进行排序,保证优先选择同宿主机的存储节点进行读写数据。
在一个实施例中,每个物理主机中还部署有计算节点,分布式系统的数据处理方法还包括:接收目标客户端的计算指令,在分布式系统中的各计算节点中确定目标计算节点,并控制目标计算节点执行计算指令;其中,目标计算节点与执行计算指令所需的数据所存储的存储节点位于同一物理主机。即执行计算指令的计算节点尽可能分配在离计算所需数据最近的地方,有利于降低计算时的网络开销。
在一个实施例中,管理节点可以为资源管理节点,对于计算指令的处理流程的示意图可以参阅图9,包括:
步骤401:接收目标客户端的计算指令。
步骤402:查询存储有执行计算指令所需的数据的第二目标存储节点。
步骤403:确定第二目标存储节点的宿主机。
步骤404:查询第二目标存储节点的宿主机上存在的目标计算节点。
步骤405:将目标计算节点的信息返回至目标客户端,以供目标客户端在目标计算节点进行数据计算。
本实施例中,执行计算指令的计算节点尽可能分配在离计算所需数据最近的地方,有利于降低计算时的网络开销。
在步骤402中,资源管理节点可以根据计算指令确定执行计算指令所需的数据,然后在分布式系统中确定存储有执行计算指令所需的数据的存储节点,查询到的该存储节点可以称为第二目标存储节点。
在步骤403中,资源管理节点可以在分布式系统系统的各物理主机中选择出存储有执行计算指令所需的数据的存储节点所在的物理主机,即确定第二目标存储节点的宿主机。比如,资源管理节点可以获取第二目标存储节点对应的机架名称;根据第二目标存储节点对应的机架名称,确定第二目标存储节点的宿主机的IP,从而确定第二目标存储节点的宿主机。第二目标存储节点对应的机架名称和第二目标存储节点的宿主机的IP相同。
在步骤404中,资源管理节点可以从Kubernetes的api server获取各物理主机与各计算节点之间的归属关系,该归属关系即为各计算节点分别归属于哪一个物理主机。从而,可以根据归属关系查询到第二目标存储节点的宿主机上存在的目标计算节点。即资源管理节点可以根据第二目标存储节点的宿主机和归属关系,在分布式系统中的各计算节点中确定归属于第二目标存储节点的宿主机的计算节点,并将该归属于第二目标存储节点的宿主机的计算节点作为目标计算节点。
在一个实施例中,计算节点也对应有机架名称,计算节点的机架名称为计算节点的Pod所在的宿主机的IP,资源管理节点可以获取各计算节点的机架名称,根据各计算节点的机架名称和第二目标存储节点的宿主机的IP,查询第二目标存储节点的宿主机上存在的目标计算节点。
在步骤405中,资源管理节点将目标计算节点的信息返回至目标客户端,以供目标客户端在目标计算节点进行数据计算,使得目标计算节点在进行数据计算时,可以从本机读取到计算所需的数据,有利于降低计算时的网络开销。
在一个实施例中,管理节点为资源管理节点,分布式系统中的各计算节点在启动时均在资源管理节点登记自己的IP地址,使得资源管理节点可以识别各计算节点,便于对各计算节点的管理,有利于准确的选择出和存储有执行计算指令所需的数据的存储节点具有相同IP地址的目标计算节点。
在一个实施例中,以分布式资源管理调度系统(Yet Another ResourceNegotiator,YARN)为例,目标客户端提交yarn计算任务(即上述的计算指令),执行计算指令所需的数据(以下简称源文件)存储在分布式文件系统HDFS上。资源管理节点根据源文件所在的存储节点的IP地址,将计算指令分配给和源文件所在的存储节点的IP地址同IP地址的计算节点执行,以实现计算本地化。
为了更好的实现计算本地化,各物理主机中的计算节点在启动时可以在资源管理节点resourceManager登记自己的IP地址,同时resourceManager从Kubernetes的接口服务api server获取物理主机和计算节点的归属关系,结合归属关系得到能够实现本地计算的计算节点。在分布式资源管理调度系统中执行计算任务的实施流程图参阅图10,包括:
步骤501:目标客户端向资源管理节点提交应用程序;其中包括应用管理器ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等,提交的应用程序可以理解为提交的计算任务。ApplicationMaster为协调集群中应用程序执行的进程,是YARN中的核心组件之一。
同时还可以参阅图11,图11为在分布式资源管理调度系统中执行计算任务的实施架构图,
步骤502:资源管理节点为应用程序分配第一个容器Container,并控制对应的YARN中的计算节点NodeManager在Container中启动应用程序的ApplicationMaster。其中,对应的NodeManager是YARN中的核心组件之一。
步骤503:ApplicationMaster向资源管理节点申请一个计算节点执行计算任务。
步骤504:资源管理节点根据源文件所在存储节点的IP地址,确定源文件所在的物理主机,并确定源文件所在的物理主机下的目标计算节点的docker ip,返回给应用管理器ApplicationMaster。其中,resourceManager从Kubernetes的api server获取物理主机和计算节点的归属关系,结合该归属关系得到目标计算节点的docker ip。
步骤505:ApplicationMaster收到目标计算节点的docker ip后,向目标计算节点发起计算任务。通过图11可以看出,目标计算节点可以包括:宿主机1-3中部署的计算节点。
步骤506:目标计算节点接收到计算任务后执行计算任务。
步骤507:应用程序运行完成后,ApplicationMaster向资源管理节点注销并关闭自己。
本实施例中,可以解决分布式系统在云化平台部署下导致原生存储及读写性能下降的问题。在云化环境下部署hadoop服务,不同于一般的部署情况,存储计算组件的各个角色(即存储节点和计算节点)均分布在不同的Pod中,具有不同的IP地址,相互之间认为彼此是不同的节点,因此在分布式存储系统选取存储节点进行读写时,无法选择到优先的与客户端在同一IP的存储节点,分布式计算系统在选取计算节点时,也无法选择到就近的计算节点进行计算;本实施例通过获取目标客户端与各物理主机的位置关系,保证存储时数据优先写入本机的存储节点,计算时计算节点尽可能分配在离数据最近的地方以降低存储/计算时的网络开销,增加系统的整体吞吐量。本实施例中提供的分布式系统的数据处理方法具有通用性,且普遍适用于大部分的大数据分布式产品在云化环境下部署的情况。
在未采用本实施例的分布式系统的数据处理方法的情况下,云化环境下的本地数据命中率相比物理机环境下降了20%~30%(针对不同的集群环境此值会稍有不同),采用本实施例的分布式系统的数据处理方法后,云化环境与物理机环境下本地数据命中率可达到基本持平,合理地解决了云化环境下数据本地性的问题。
需要说明的是,本申请实施例中的上述各示例均为为方便理解进行的举例说明,并不对本发明的技术方案构成限定。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本申请实施例还提供了一种分布式系统的数据处理系统,分布式系统部署在云化平台中,数据处理系统包括:管理节点和分布式系统,分布式系统包括多个宿主机,每个宿主机中部署有客户端和存储节点;管理节点,用于接收分布式系统中的目标客户端发送的数据读写的操作指令,确定目标客户端的宿主机;管理节点,还用于查询目标客户端的宿主机上存在的第一目标存储节点,将第一目标存储节点的信息返回至目标客户端;目标客户端,用于在第一目标存储节点进行数据读写。
不难发现,本实施例为与上述方法实施例相对应的系统实施例,本实施例可与上述方法实施例互相配合实施。上述方法实施例中提到的相关技术细节和技术效果在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述方法实施例中。
本申请实施例还提供了一种管理节点,如图12所示,包括:至少一个处理器601;以及,与至少一个处理器601通信连接的存储器602;其中,存储器602存储有可被至少一个处理器601执行的指令,指令被所述至少一个处理器601执行,以使至少一个处理器601能够执行上述的分布式系统的数据处理方法。
其中,存储器602和处理器601采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器601和存储器602的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器601处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器601。
处理器601负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器602可以被用于存储处理器601在执行操作时所使用的数据。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (12)

1.一种分布式系统的数据处理方法,其特征在于,所述分布式系统部署在云化平台中,所述方法应用于管理节点,包括:
接收所述分布式系统中的目标客户端发送的数据读写的操作指令;其中,所述分布式系统包括多个宿主机,每个所述宿主机中部署有客户端和存储节点;
确定所述目标客户端的宿主机;
查询所述目标客户端的宿主机上存在的第一目标存储节点;
将所述第一目标存储节点的信息返回至所述目标客户端,以供所述目标客户端在所述第一目标存储节点进行数据读写。
2.根据权利要求1所述的分布式系统的数据处理方法,其特征在于,每个所述宿主机作为一个机架,所述查询所述目标客户端的宿主机上存在的第一目标存储节点,包括:
获取机架信息;其中,所述机架信息包括:每个所述宿主机中部署的存储节点的信息;
根据所述机架信息,查询所述目标客户端的宿主机上存在的第一目标存储节点。
3.根据权利要求2所述的分布式系统的数据处理方法,其特征在于,所述获取机架信息包括:
获取所述分布式系统中的各存储节点上报的归属关系;其中,所述归属关系为所述各存储节点与所述各存储节点的宿主机的归属关系;
根据所述归属关系,构建存储节点的网络拓扑;
根据所述网络拓扑,获取机架信息。
4.根据权利要求3所述的分布式系统的数据处理方法,其特征在于,在所述根据所述网络拓扑,获取机架信息之后,还包括:
通过预设接口获取所述各存储节点启动的监听器监听到的信息;其中,所述各存储节点在启动时,在所述各存储节点对应的进程内启动监听器;
在根据所述监听到的信息确定所述机架信息更新的情况下,更新所述机架信息。
5.根据权利要求2所述的分布式系统的数据处理方法,其特征在于,所述确定所述目标客户端的宿主机,包括:
获取所述目标客户端的通用唯一识别码UUID;其中,所述UUID中添加有所述目标客户端的宿主机的IP;
解析所述目标客户端的UUID,确定所述目标客户端的宿主机。
6.根据权利要求1所述的分布式系统的数据处理方法,其特征在于,所述存储节点对应有机架名称,所述机架名称为所述存储节点的Pod所在的宿主机的IP;
所述查询所述目标客户端的宿主机上存在的第一目标存储节点,包括:
获取所述分布式系统中的各存储节点对应的机架名称;
根据所述各存储节点对应的机架名称和所述目标客户端的宿主机的IP,查询所述目标客户端的宿主机上存在的第一目标存储节点。
7.根据权利要求1所述的分布式系统的数据处理方法,其特征在于,在所述接收所述分布式系统中的目标客户端发送的数据读写的操作指令之后,所述方法还包括:
确定所述目标客户端与所述分布式系统中各存储节点之间的距离;
根据所述距离,从小到大对所述各存储节点进行排序,得到排序列表;其中,所述排序列表中排在首位的为所述第一目标存储节点;
所述将所述第一目标存储节点的信息返回至所述目标客户端,以供所述目标客户端在所述第一目标存储节点进行数据读写,包括:
将所述排序列表返回至所述目标客户端,以供所述目标客户端按照所述排序列表在所述各存储节点进行数据读写。
8.根据权利要求1所述的分布式系统的数据处理方法,其特征在于,每个所述宿主机中还部署有计算节点,所述方法还包括:
接收所述目标客户端的计算指令;
查询存储有执行所述计算指令所需的数据的第二目标存储节点;
确定所述第二目标存储节点的宿主机;
查询所述第二目标存储节点的宿主机上存在的目标计算节点;
将所述目标计算节点的信息返回至所述目标客户端,以供所述目标客户端在所述目标计算节点进行数据计算。
9.根据权利要求8所述的分布式系统的数据处理方法,其特征在于,所述管理节点为资源管理节点,所述分布式系统中的各计算节点在启动时均在所述资源管理节点登记自己的IP地址。
10.一种分布式系统的数据处理系统,其特征在于,所述分布式系统部署在云化平台中,所述数据处理系统包括:管理节点和分布式系统,所述分布式系统包括多个宿主机,每个所述宿主机中部署有客户端和存储节点;
所述管理节点,用于接收所述分布式系统中的目标客户端发送的数据读写的操作指令,确定所述目标客户端的宿主机;
所述管理节点,还用于查询所述目标客户端的宿主机上存在的第一目标存储节点,将所述第一目标存储节点的信息返回至所述目标客户端;
所述目标客户端,用于在所述第一目标存储节点进行数据读写。
11.一种管理节点,其特征在于,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至9中任一所述的分布式系统的数据处理方法。
12.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一所述的分布式系统的数据处理方法。
CN202111531957.5A 2021-12-14 2021-12-14 分布式系统的数据处理方法、系统、节点和存储介质 Pending CN116301561A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111531957.5A CN116301561A (zh) 2021-12-14 2021-12-14 分布式系统的数据处理方法、系统、节点和存储介质
PCT/CN2022/136682 WO2023109554A1 (zh) 2021-12-14 2022-12-05 分布式系统的数据处理方法、系统、节点和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111531957.5A CN116301561A (zh) 2021-12-14 2021-12-14 分布式系统的数据处理方法、系统、节点和存储介质

Publications (1)

Publication Number Publication Date
CN116301561A true CN116301561A (zh) 2023-06-23

Family

ID=86774800

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111531957.5A Pending CN116301561A (zh) 2021-12-14 2021-12-14 分布式系统的数据处理方法、系统、节点和存储介质

Country Status (2)

Country Link
CN (1) CN116301561A (zh)
WO (1) WO2023109554A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546782B (zh) * 2011-12-28 2015-04-29 北京奇虎科技有限公司 一种分布式系统及其数据操作方法
CN103455577A (zh) * 2013-08-23 2013-12-18 中国科学院计算机网络信息中心 云主机镜像文件的多备份就近存储和读取方法及系统
CN104580437A (zh) * 2014-12-30 2015-04-29 创新科存储技术(深圳)有限公司 一种云存储客户端及其高效数据访问方法
CN106302607B (zh) * 2015-06-05 2019-08-16 腾讯科技(深圳)有限公司 应用于云计算的块存储系统及方法
CN109254958B (zh) * 2018-10-18 2021-07-16 上海云轴信息科技有限公司 分布式数据读写方法、设备及系统
CN110198346B (zh) * 2019-05-06 2020-10-27 北京三快在线科技有限公司 数据读取方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
WO2023109554A1 (zh) 2023-06-22

Similar Documents

Publication Publication Date Title
US11556366B2 (en) Container login method, apparatus, and storage medium
US11687555B2 (en) Conditional master election in distributed databases
US9170892B2 (en) Server failure recovery
US10719260B2 (en) Techniques for storing and retrieving data from a computing device
CN102523279B (zh) 一种分布式文件系统及其热点文件存取方法
US20160275123A1 (en) Pipeline execution of multiple map-reduce jobs
US9602614B1 (en) Distributed caching cluster client configuration
CN106991008B (zh) 一种资源锁管理方法、相关设备及系统
WO2020042612A1 (zh) 消息存储、读取方法及装置、服务器、存储介质
CN111600936A (zh) 一种适用于泛在电力物联网边缘终端的基于多容器的非对称处理系统
CN103607428A (zh) 一种访问共享内存的方法和装置
CN109327332B (zh) 一种Ceph云存储下基于LIO的iSCSI GateWay高可用实现方法
CN113031874B (zh) 基于Kubernetes集群的缓存处理方法、装置、设备及存储介质
CN111124286A (zh) 一种基于Libcloud的多云管理实现方法
CN103607424A (zh) 一种服务器连接方法及服务器系统
CN104980307A (zh) 数据访问请求的处理方法、装置及数据库服务器
CN114625762A (zh) 一种元数据获取方法、网络设备及系统
CN114385561A (zh) 文件管理方法和装置及hdfs系统
CN114422537B (zh) 多云存储系统、多云数据读写方法及电子设备
CN111935242A (zh) 数据传输方法、装置、服务器以及存储介质
US10848549B1 (en) Leaderless, parallel, and topology-aware protocol for achieving consensus
CN116805946A (zh) 一种消息请求处理方法、装置、电子设备及存储介质
CN113992662A (zh) 文件传输方法、装置及存储介质
CN113746641A (zh) 一种基于分布式存储的odx协议处理方法
CN106933654B (zh) 一种基于缓存的虚拟机启动方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication