CN111159131A - 性能优化方法、装置、设备及计算机可读存储介质 - Google Patents
性能优化方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111159131A CN111159131A CN201811323508.XA CN201811323508A CN111159131A CN 111159131 A CN111159131 A CN 111159131A CN 201811323508 A CN201811323508 A CN 201811323508A CN 111159131 A CN111159131 A CN 111159131A
- Authority
- CN
- China
- Prior art keywords
- data
- data node
- client
- node
- pressure
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000005457 optimization Methods 0.000 title claims abstract description 42
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 238000012163 sequencing technique Methods 0.000 claims description 16
- 238000009826 distribution Methods 0.000 abstract description 10
- 238000012423 maintenance Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 239000000306 component Substances 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 239000008358 core component Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011451 sequencing strategy Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种性能优化方法、装置、设备及计算机可读存储介质,所述方法包括:当接收到客户端发送的数据读取请求后,获取所述数据读取请求对应的数据块所在的数据节点;获取所述数据节点对应的预设排序策略,按照所述排序策略对所述数据节点进行排序,得到数据节点列表;将所述数据节点列表返回给所述客户端,以供所述客户端根据所述数据节点列表确定提供读数据块服务的数据节点。避免了客户端总是从与其距离最近的数据节点中读取数据块,减小了与客户端距离最近的数据节点的压力,避免了HDFS压力分布不均匀,提高了整个HDFS的读性能。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种性能优化方法、装置、设备及计算机可读存储介质。
背景技术
Hadoop是一个开源分布式计算平台,Hadoop分布式文件系统(HadoopDistributed File System,HDFS)是Hadoop的一个核心组成部分,目前广为大数据服务所应用。HDFS在Hadoop中主要负责存储文件数据。HDFS上的文件按照数据块进行存储。数据块是一个抽象概念,它是文件存储处理的逻辑单元。一个数据块通常有多个副本以增加数据安全性,数据块的多个副本通常被存放在不同的数据节点中,这些数据节点可能在同一个机架中,也可能在不同机架中。当HDFS中的客户端要读取文件时,通常优先读取与其距离最近的数据节点中的数据块副本,如读取与其在同一机架中的数据节点中的数据块副本。此时,客户端总是访问与其距离最近的数据节点,与客户端距离最近的数据节点会压力过大,相对较远的数据节点则压力偏小,从而导致HDFS压力分布不均匀,整个HDFS的读性能下降。
发明内容
本发明的主要目的在于提供一种性能优化方法、设备及计算机可读存储介质,旨在解决在HDFS中由于客户端总是从与其距离最近的数据节点中读取数据,导致的HDFS压力分布不均匀,整个HDFS的读性能下降的技术问题。
为实现上述目的,本发明提供一种性能优化方法,所述性能优化方法包括步骤:
当接收到客户端发送的数据读取请求后,获取所述数据读取请求对应的数据块所在的数据节点;
获取所述数据节点对应的预设排序策略,按照所述排序策略对所述数据节点进行排序,得到数据节点列表;
将所述数据节点列表返回给所述客户端,以供所述客户端根据所述数据节点列表确定提供读数据块服务的数据节点。
优选地,当所述排序策略为第一排序策略时,所述按照所述排序策略对所述数据节点进行排序,得到数据节点列表的步骤包括:
获取所述数据节点对应的压力值;
根据所述压力值确定所述数据节点对应的压力,将所述数据节点按照所述压力从小到大的顺序排序,得到数据节点列表。
优选地,所述获取所述数据节点对应的压力值的步骤包括:
获取所述数据节点的压力数据;
根据所述压力数据和预设的压力数据分值标准,得到所述数据节点的压力数据分值;
根据所述压力数据分值和对应预设的压力数据权重值,计算得到所述数据节点对应的压力值。
优选地,当所述排序策略为第二排序策略时,所述按照所述排序策略对所述数据节点进行排序,得到数据节点列表的步骤包括:
将所述数据节点按照与所述客户端的距离由近到远的顺序排序,得到预处理数据节点列表;
获取所述数据节点对应的压力值,检测所述数据节点对应的压力值是否满足预设条件;
当检测到所述数据节点对应的压力值满足预设条件时,将所述压力值满足预设条件的数据节点移动到所述预处理数据节点列表的末端,得到处理后的数据节点列表。
优选地,当所述排序策略为第三排序策略时,所述按照所述排序策略对所述数据节点进行排序,得到数据节点列表的步骤包括:
将所述数据节点进行随机排序,得到数据节点列表。
优选地,所述将所述数据节点列表返回给所述客户端,以供所述客户端根据所述数据节点列表确定提供读数据块服务的数据节点的步骤包括:
将所述数据节点列表返回给所述客户端,以供所述客户端将所述数据节点列表中排在最前面的数据节点确定为提供读数据块服务的数据节点。
优选地,所述当接收到客户端发送的数据读取请求后,获取所述数据读取请求对应的数据块所在的数据节点的步骤之前,还包括:
当接收到设置所述排序策略的设置请求后,根据所述设置请求设置所述数据节点对应的排序策略。
此外,为实现上述目的,本发明还提供一种性能优化装置,其特征在于,所述性能优化装置包括:
获取模块,用于当接收到客户端发送的数据读取请求后,获取所述数据读取请求对应的数据块所在的数据节点;获取所述数据节点对应的预设排序策略;
排序模块,用于按照所述排序策略对所述数据节点进行排序,得到数据节点列表;
数据返回模块,用于将所述数据节点列表返回给所述客户端,以供所述客户端根据所述数据节点列表确定提供读数据块服务的数据节点。
此外,为实现上述目的,本发明还提供一种性能优化设备,所述性能优化设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的性能优化程序,所述性能优化程序被所述处理器执行时实现如上所述的性能优化方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有性能优化程序,所述性能优化程序被处理器执行时实现如上所述的性能优化方法的步骤。
本发明通过当接收到客户端发送的数据读取请求后,获取该数据读取请求对应的数据块所在的数据节点,以及获取数据节点对应的预设排序策略,按照该排序策略对该数据节点进行排序,得到数据节点列表;将该数据节点列表返回给该客户端,以供所述客户端根据所述数据节点列表确定提供读数据块服务的数据节点。由于客户端根据该排序策略排序后所得的数据节点列表确定提供读数据块服务的数据节点,不再总是将与客户端距离最近的数据节点确定为提供读数据块服务的数据节点,从而避免了客户端总是从与其距离最近的数据节点中读取数据块,减小了与客户端距离最近的数据节点的压力,避免了HDFS压力分布不均匀,提高了整个HDFS的读性能。
附图说明
图1本发明实施例方案涉及的硬件运行环境的结构示意图;
图2本发明实施例方案涉及的HDFS中数据读的流程图;
图3为本发明性能优化方法较佳实施例的流程示意图;
图4为本发明实施例方案涉及的一种将数据节点按压力大小排序的排序图;
图5为本发明实施例方案涉及的一种将数据节点按与客户端之间的距离排序的排序图;
图6为本发明实施例方案涉及的一种将数据节点按与客户端之间的距离以及压力排序的排序图;
图7为本发明性能优化装置较佳实施例的功能示意图模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
由于目前存在HDFS中客户端总是从与其距离最近的数据节点中读取数据,导致的HDFS压力分布不均匀,整个HDFS的读性能下降的技术问题,本发明提供一种解决方案,通过当接收到客户端发送的数据读取请求后,获取该数据读取请求对应的数据块所在的数据节点;获取数据节点对应的预设排序策略后,按照该排序策略对该数据节点进行排序,得到数据节点列表;将该数据节点列表返回给该客户端,以供该客户端根据该数据节点列表确定提供读数据块服务的数据节点。避免了客户端总是从与其距离最近的数据节点中读取数据块,减小了与客户端距离最近的数据节点的压力,避免了HDFS压力分布不均匀、整个HDFS的读性能下降的问题。
本发明提供了一种性能优化设备,参照图1,图1是本发明实施例方案涉及的硬件运行环境的结构示意图。
需要说明的是,图1即可为性能优化设备的硬件运行环境的结构示意图。本发明实施例性能优化设备可以是PC、服务器,例如HDFS的元数据服务器,也可以是智能手机、平板电脑、便携计算机等可移动式终端设备。
如图1所示,该性能优化设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,性能优化设备还可以包括、摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。本领域技术人员可以理解,图2中示出的性能优化设备结构并不构成对性能优化设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及性能优化程序。
在图1所示的性能优化设备中,网络接口1004主要用于连接其他数据节点,名字节点或客户端;HDFS运维人员可通过用户接口1003触发设置指令;而处理器1001可以用于调用存储器1005中存储的性能优化程序,并执行以下操作:
当接收到客户端发送的数据读取请求后,获取所述数据读取请求对应的数据块所在的数据节点;
获取所述数据节点对应的预设排序策略,按照所述排序策略对所述数据节点进行排序,得到数据节点列表;
将所述数据节点列表返回给所述客户端,以供所述客户端根据所述数据节点列表确定提供读数据块服务的数据节点。
进一步地,当所述排序策略为第一排序策略时,所述按照所述排序策略对所述数据节点进行排序,得到数据节点列表的步骤包括:
获取所述数据节点对应的压力值;
根据所述压力值确定所述数据节点对应的压力,将所述数据节点按照所述压力从小到大的顺序排序,得到数据节点列表。
进一步地,所述获取所述数据节点对应的压力值的步骤包括:
获取所述数据节点的压力数据;
根据所述压力数据和预设的压力数据分值标准,得到所述数据节点的压力数据分值;
根据所述压力数据分值和对应预设的压力数据权重值,计算得到所述数据节点对应的压力值。
进一步地,当所述排序策略为第二排序策略时,所述按照所述排序策略对所述数据节点进行排序,得到数据节点列表的步骤包括:
将所述数据节点按照与所述客户端的距离由近到远的顺序排序,得到预处理数据节点列表;
获取所述数据节点对应的压力值,检测所述数据节点对应的压力值是否满足预设条件;
当检测到所述数据节点对应的压力值满足预设条件时,将所述压力值满足预设条件的数据节点移动到所述预处理数据节点列表的末端,得到处理后的数据节点列表。
进一步地,所述将所述数据节点列表返回给所述客户端,以供所述客户端根据所述数据节点列表确定提供读数据块服务的数据节点的步骤包括:
将所述数据节点列表返回给所述客户端,以供所述客户端将所述数据节点列表中排在最前面的数据节点确定为提供读数据块服务的数据节点。
进一步地,所述当接收到客户端发送的数据读取请求后,获取所述数据读取请求对应的数据块所在的数据节点的步骤之前,处理器1001可以调用存储器1005中存储的性能优化程序,还执行以下操作:
当接收到设置所述排序策略的设置请求后,根据所述设置请求设置所述数据节点对应的排序策略。
基于上述的硬件结构,提出本发明性能优化方法的各个实施例。在本发明性能优化方法的各个实施例中,为了便于描述,以HDFS的元数据服务器名字节点为执行主体进行阐述各个实施例。HDFS体系结构中主要有两类节点,一类是名字节点,一类是数据节点。名字节点是HDFS的元数据服务器,用于管理并协调数据节点的工作,其内存中保存整个HDFS的两类元数据:(1)文件系统的名字空间,即文件目录树;以及文件的数据块索引,即每个文件对应的数据块列表;(2)数据块与数据节点的映射,即数据块存储在哪个数据节点上。从名字节点中可以获得每个文件的每个数据块所在的数据节点。数据节点均对应一个端口号和IP(Internet Protocol,网络协议)地址,根据该端口号或IP地址可唯一识别一个数据节点。以下各实施例中为方便描述,用阿拉伯数字给数据节点命名,以区分不同的数据节点,如当副本数为3个时,一个数据块可能被存放在数据节点1,数据节点2和数据节点3上,这个映射关系被保存在名字节点中。数据节点负责存储实际的文件数据块,被客户端和名字节点调用,同时,它会通过心跳定时向名字节点发送所存储的数据块信息。需要说明的是,在HDFS中,通常一个节点是一个机器,在本发明各实施例中,将要读取数据或文件的机器均称作客户端,客户端可能是一个数据节点,也可能是一个名字节点,或者其他个人计算机、智能手机等终端或设备。因此数据块副本所在的数据节点与客户端,以及数据节点之间可能在同一机架,也可能在不同机架,数据节点与客户端也可能是同一台机器。HDFS中数据读的流程如图2所示:
1、客户端向名字节点发起读数据请求,该读数据请求可以是读取文件。
2、名字节点根据数据块索引找到客户端要读取的数据对应的数据块列表,再根据数据块与数据节点的映射,找到每个数据块的各个副本所在的数据节点,并将这些数据节点返回给该客户端。如图2所示,名字节点将数据块副本所在的数据节点1、2和3返回给客户端。
3、客户端从名字节点返回的数据节点中,确定一个为其提供读服务的数据节点,向该数据节点发送读数据块请求。如图2所示,客户端向该数据节点1发送读数据块请求。
4、数据节点1接收到读数块请求后,将存储在其上的数据块副本发送给该客户端。
参照图3,本发明性能优化方法较佳实施例提供一种性能优化方法,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。所述性能优化方法包括:
步骤S1,当接收到客户端发送的数据读取请求后,获取所述数据读取请求对应的数据块所在的数据节点。
客户端向名字节点发起数据读取请求,名字节点在接收到该数据读取请求后,根据数据块索引获取客户端要读取的数据对应的数据块列表,如客户端要读取的数据被分为三个数据块存储,获取到的数据块列表为数据块1、数据块2和数据块3,每个数据块分别有三个副本。名字节点根据数据块与数据节点的映射,获取数据块列表中的每个数据块的各个副本所在的数据节点,如数据块1的三个副本分别存储在数据节点1、2和3上。为方便描述,以下各实施例中,按照数据块个数为1,数据块副本数为3进行描述。
步骤S2,获取所述数据节点对应的预设排序策略,按照所述排序策略对所述数据节点进行排序,得到数据节点列表。
名字节点中预先设置有对数据节点进行排序的排序策略,排序策略可以是按照数据节点与客户端的距离进行排序的策略,也可以是按照数据节点的压力大小进行排序的策略等。当名字节点获取到数据块所在的数据节点后,获取该排序策略,根据该排序策略对数据节点进行排序,得到数据节点列表。可以理解的是,排序后的数据节点组成的列表即为数据节点列表。如对数据节点1、2、3进行排序,得到的数据节点列表为,数据节点1、数据节点3、数据节点2。
步骤S3,将所述数据节点列表返回给所述客户端,以供所述客户端根据所述数据节点列表确定提供读数据块服务的数据节点。
名字节点将根据该排序策略排序后得到的数据节点列表返回给客户端,客户端在接收到该数据节点列表后,从该数据节点列表中选择一个数据节点,将其确定为提供读数据块服务的数据节点,并向该数据节点发送读数据块请求。当该数据节点接收到读数据块请求后,会将对应的数据块发送给客户端。需要说明的是,客户端可以选择排在数据节点列表第一位的数据节点,也可以选择排在第二为的数据节点,或者优先选择排在前二位的数据节点,或者随机选择一个数据节点等。
进一步地,为了客户端快速确定读取数据块的数据节点,减少客户端的计算量,步骤S3包括:
步骤a,将所述数据节点列表返回给所述客户端,以供所述客户端将所述数据节点列表中排在最前面的数据节点确定为提供读数据块服务的数据节点。
客户端在接收到该数据节点列表后,选择数据节点列表中排在第一的数据节点,将其确定为提供读数据块服务的数据节点,并向数据节点列表中排在第一的数据节点发送读数据块请求,以获得要读取的数据块。
进一步地,步骤S1之前,还包括:
步骤b,当接收到设置所述排序策略的设置请求后,根据所述设置请求设置所述数据节点对应的排序策略。
名字节点中预设有多种排序策略可供HDFS运维人员选择,运维人员也可以在名字节点中设置新的排序策略。即运维人员可以根据具体情况,设置不同的排序策略,以应对不同的HDFS运行环境。当名字节点接收到设置排序策略的设置请求后,根据该设置请求设置排序策略,在此之后,当要对数据节点进行排序时,就按照根据该设置请求设置的排序策略对数据节点进行排序。
优选地,可以通过HDFS配置文件对排序策略进行管理。运维人员可以在名字节点或者专门设置的管理节点中修改配置文件,如修改配置文件中数据节点的排序策略,或者设置新的排序策略。配置文件一经修改,将同步到HDFS的各个名字节点和各个数据节点中。名字节点可从HDFS配置文件中获取排序策略。
本实施例通过当接收到客户端发送的数据读取请求后,获取该数据读取请求对应的数据块所在的数据节点;获取数据节点对应的预设排序策略后,按照该排序策略对该数据节点进行排序,得到数据节点列表;将该数据节点列表返回给该客户端,以供该客户端根据该数据节点列表确定提供读数据块服务的数据节点。由于客户端根据该排序策略排序后所得的数据节点列表确定提供读数据块服务的数据节点,不再总是将与客户端距离最近的数据节点确定为提供读数据块服务的数据节点,从而避免了客户端总是从与其距离最近的数据节点中读取数据块,减小了与客户端距离最近的数据节点的压力,避免了HDFS压力分布不均匀,提高了整个HDFS的读性能。
进一步的,基于上述第一实施例,本发明性能优化方法第二实施例提供一种性能优化方法。在本实施例中,当名字节点获取到的排序策略为第一排序策略时,步骤S2中的按照所述排序策略对所述数据节点进行排序,得到数据节点列表的步骤包括:
步骤c,获取所述数据节点对应的压力值。
名字节点在获取到数据块所在的数据节点后,首先获取每个数据节点当前的压力值。数据节点当前的压力值可由该数据节点根据其当前的压力数据,以及配置文件中预设的压力值计算方法计算得出,此时,名字节点从数据节点中获取其当前的压力值即可。其中配置文件中预设的压力值计算方法可由运维人员在名字节点或专门设置的管理节点中进行设置,如将各个压力数据直接相加即得到压力值。
数据节点的压力值也可以由名字节点根据从数据节点中获取到的该数据节点当前的压力数据,和配置文件中预设的压力值计算方法计算得出,此时,名字节点需要先从数据节点获取该数据节点的当前的压力数据。
压力数据包括但不限于磁盘IO速率(磁盘读写速率),内存使用率,CPU(CentralProcessing Unit,中央处理器)使用率和网络IO速率(网络输入输出速率)。数据节点可通过设置监控进程,实时监控其压力数据,如监控进程监控到该数据节点当前的磁盘IO速率为100兆每秒,内存使用率为20%,CPU使用率为40%,网络IO速率为50M每秒。其中监控进程监控到的磁盘IO速率和网络IO速率也可以是百分比的形式,即将磁盘IO速率和网络IO速率转换成了百分比,如磁盘IO速率为30%。
需要说明的是,数据节点可以是在检测到配置文件中的数据节点的排序策略为第一排序策略后,才增设监控进程对其压力数据进行监控。
步骤d,根据所述压力值确定所述数据节点对应的压力,将所述数据节点按照所述压力从小到大的顺序排序,得到数据节点列表。
当获取到每个数据节点对应的压力值后,由于压力值大小表示该数据节点压力的大小,因此可以根据每个数据节点对应的压力值,确定每个数据节点的压力,将数据节点按照压力从小到大的顺序排列,得到数据节点列表,此时,压力最小的数据节点被排在数据节点列表的最前面。此处可包含两种可能的情况,一种是压力值越大代表数据节点的压力越大,一种是压力值越小代表数据节点的压力越小,这两种情况是根据计算数据节点的压力值时所采用的计算方法不同而导致的。无论是上述哪一种情况,都是将压力小的数据节点排在数据列表的前面。如图4所示,数据节点的压力值越大,表示该数据节点的压力越小,将压力值最大的数据节点2排在数据节点列表的最前面,压力值最小的数据节点1排在最后面。
进一步地,步骤c包括:
步骤e,获取所述数据节点的压力数据。
名字节点从数据节点中获取该数据节点当前的压力数据。
步骤f,根据所述压力数据和预设的压力数据分值标准,得到所述数据节点的压力数据分值。
配置文件中预设有数据节点各个压力数据的压力数据分值标准,压力数据分值标准反映压力数据与压力数据分值之间的映射关系,HDFS运维人员在设置排序策略时,可以根据具体情况设置压力数据分值标准,例如可将磁盘IO速率分值标准设置为表1所示的磁盘IO速率分值标准,反映磁盘IO速率与磁盘IO速率分值之间的映射关系,类似地,表2为CPU使用率分值标准,表3为内存使用率分值标准,表4为网络IO速率分值标准。应当理解的是,压力数据分值标准不限于表中所示的各个分值标准。
磁盘IO速率 | 磁盘IO速率分值 |
0-10% | 10 |
11%-20% | 9 |
21%-30% | 8 |
31%-40% | 7 |
41%-50% | 6 |
51%-60% | 5 |
61%-70% | 4 |
71%-80% | 3 |
81%-90% | 2 |
91%-100% | 1 |
表1
CPU使用率 | CPU使用率分值 |
0-10% | 10 |
11%-20% | 9 |
21%-30% | 8 |
31%-40% | 7 |
41%-50% | 6 |
51%-60% | 5 |
61%-70% | 4 |
71%-80% | 3 |
81%-90% | 2 |
91%-100% | 1 |
表2
内存使用率 | 内存使用率分值 |
0-10% | 10 |
11%-20% | 9 |
21%-30% | 8 |
31%-40% | 7 |
41%-50% | 6 |
51%-60% | 5 |
61%-70% | 4 |
71%-80% | 3 |
81%-90% | 2 |
91%-100% | 1 |
表3
网络IO速率 | 网络IO速率分值 |
0-10% | 10 |
11%-20% | 9 |
21%-30% | 8 |
31%-40% | 7 |
41%-50% | 6 |
51%-60% | 5 |
61%-70% | 4 |
71%-80% | 3 |
81%-90% | 2 |
91%-100% | 1 |
表4
名字节点从配置文件中获取该压力数据分值标准,将数据节点的各个压力数据与对应的分值标准进行比对,得到各个压力数据分值。如当数据节点当前的磁盘IO速率为20%,CPU使用率为30%,内存使用率为40%,网络IO为20%,则根据表1-4所示的各个分值标准,得到该数据节点的磁盘IO速率分值为9,CPU使用率分值为8,内存使用率分值为7,网络IO分值为9。
步骤g,根据所述压力数据分值和对应预设的压力数据权重值,计算得到所述数据节点对应的压力值。
配置文件中预设有数据节点各个压力数据的权重值,HDFS运维人员在设置排序策略时,可以根据具体情况设置各个压力数据的权重值,例如可将磁盘IO速率权重值设置为10,CPU使用率权重值设置为5,内存使用率权重值设置为5,网络IO速率权重值设置为8。
名字节点从配置文件中获取到各个压力数据的权重值后,将各个压力数据分值与对应的压力数据权重值相乘后相加,即得到该数据节点对应的压力值。如根据上述具体例子中的各个压力数据分值以及各个压力数据的权重值,计算得到该数据节点的压力值为9*10+8*5+7*5+9*10=255。
需要说明的是,在由数据节点计算其当前的压力值时,计算过程也与上述名字节点计算压力值的过程相同。
在本实施例中,通过按照数据节点的压力从小到大的顺序给数据节点进行排序,使得数据节点列表中最前面的数据节点为压力最小的数据节点,从而避免了总是将与客户端最近的数据节点排在最前面,使得该距离最近的数据节点压力过大、HDFS压力分布不均匀的问题,提高了整个HDFS的读性能。
进一步的,基于上述第一或第二实施例,本发明性能优化方法第三实施例提供一种性能优化方法。在本实施例中,当名字节点获取到的排序策略为第二排序策略时,步骤S2中的按照所述排序策略对所述数据节点进行排序,得到数据节点列表的步骤包括:
步骤h,将所述数据节点按照与所述客户端的距离由近到远的顺序排序,得到预处理数据节点列表。
当数据节点与客户端是同一台机器时,该数据节点与客户端的距离最近,当数据节点与客户端在同一机架的不同机器上时,距离较远,当数据节点与客户端在不同机架时,距离更远。数据块所在的各个数据节点与客户端的距离可能相同,也可能不相同。名字节点在获取到数据块所在的数据节点后,按照数据节点与客户端的距离由近及远的顺序给数据节点进行排序,两个与客户端距离相同的数据节点,可任一排序,得到预处理数据节点列表。如名字节点将数据节点1、2、3按照与客户端距离由近到远的顺序排序,得到图5所示的预处理数据节点列表。
步骤i,获取所述数据节点对应的压力值,检测所述数据节点对应的压力值是否满足预设条件。
名字节点获取数据节点对应的压力值的过程与第二实施例中的步骤a所述过程相同,在此不再详细赘述。当名字节点获取到数据节点对应的压力值后,遍历预处理数据节点列表,检测每个数据节点的压力值是否满足预设条件。其中,预设条件可根据具体情况进行设置,如当数据节点的压力值越大表示其压力越大时,可以设置为当数据节点的压力值大于预设压力值时即为满足预设条件;当数据节点的压力值越大表示其压力越小时,可以设置为当数据节点的压力值小于预设压力值时即为满足预设条件。预设压力值可根据具体情况设置。
步骤j,当检测到所述数据节点对应的压力值满足预设条件时,将所述压力值满足预设条件的数据节点移动到所述预处理数据节点列表的末端,得到处理后的数据节点列表。
当检测到数据节点对应的压力值满足预设条件时,将该压力值满足预设条件数据节点移动到预处理数据节点列表的末端。当遍历完所有数据节点后,得到处理后的,即最终的数据节点列表。此时,排在最前面的数据节点压力相对较小,与客户端的距离相对较近。如图6所示,是将图5所示的预处理数据节点列表中,压力值满足预设条件的数据节点1移动到末端后,得到的数据节点列表。
需要说明的是,如图5所示,若名字节点将此按照数据节点与客户端的距离排过序的预处理数据节点列表返回给客户端,并且总是按照数据节点与客户端的距离排序,数据节点1将会经常排在最前面,而客户端优先选择排在最前面的数据节点读取数据块时,排在前面的数据节点1由于经常被客户端访问,会变得压力过大,而后面的数据节点2和3则压力偏小,从而可能造成HDFS压力分布不均。因此,在本实施例中,通过将数据节点先按照与客户端的距离由近到远的顺序排序,再将数据节点满足预设条件,即压力超过预设压力的数据节点排到所有数据节点之后,使得排在数据节点列表最前面的数据节点为压力相对较小,与客户端距离相对较近的数据节点,从而避免了总是将与客户端最近的数据节点排在最前面,使得该距离最近的数据节点压力过大的问题。
进一步的,基于上述第一、第二或第三实施例,本发明性能优化方法第四实施例提供一种性能优化方法。在本实施例中,当名字节点获取到的排序策略为第三排序策略时,步骤S2中的按照所述排序策略给所述数据节点排序,得到数据节点列表的步骤包括:
步骤k,将所述数据节点进行随机排序,得到数据节点列表。
名字节点在获取到数据块所在的数据节点后,将数据节点进行随机排序,得到数据节点列表。随机排序的方法可以是任何能够将数据进行随机排序的方法。当数据块所在的各个数据节点在同一机架中时,也即各个数据节点与客户端的距离相同时,不需要考虑数据节点与客户端的距离,此时按照随机排序的策略给数据节点进行排序,使得数据节点被客户端访问的几率相同,因此避免了由于某一个数据节点压力过大,导致的HDFS压力分布不均问题。
此外,参照图7,本发明还提供一种性能优化装置,所述性能优化装置包括:
获取模块10,用于当接收到客户端发送的数据读取请求后,获取所述数据读取请求对应的数据块所在的数据节点;获取所述数据节点对应的预设排序策略;
排序模块20,用于按照所述排序策略对所述数据节点进行排序,得到数据节点列表;
数据返回模块30,用于将所述数据节点列表返回给所述客户端,以供所述客户端根据所述数据节点列表确定提供读数据块服务的数据节点。
进一步地,当所述排序策略为第一排序策略时,所述排序模块20包括:
第一获取单元,用于获取所述数据节点对应的压力值;
第一排序单元,用于根据所述压力值确定所述数据节点对应的压力,将所述数据节点按照所述压力从小到大的顺序排序,得到数据节点列表。
进一步地,所述第一获取单元还包括:
获取子单元,用于获取所述数据节点的压力数据;
计算子单元,用于根据所述压力数据和预设的压力数据分值标准,得到所述数据节点的压力数据分值;还用于根据所述压力数据分值和对应预设的压力数据权重值,计算得到所述数据节点对应的压力值。
进一步地,当所述排序策略为第二排序策略时,所述排序模块20还包括:
第二排序单元,用于将所述数据节点按照与所述客户端的距离由近到远的顺序排序,得到预处理数据节点列表;
第二获取单元,用于获取所述数据节点对应的压力值;
检测单元,用于检测所述数据节点对应的压力值是否满足预设条件;
所述第二排序单元还用于当检测到所述数据节点对应的压力值满足预设条件时,将所述压力值满足预设条件的数据节点移动到所述预处理数据节点列表的末端,得到处理后的数据节点列表。
进一步地,当所述排序策略为第三排序策略时,所述排序模块20还包括:
第三排序单元,用于将所述数据节点进行随机排序,得到数据节点列表。
进一步地,所述数据返回模块30还用于将所述数据节点列表返回给所述客户端,以供所述客户端将所述数据节点列表中排在最前面的数据节点确定为提供读数据块服务的数据节点。
进一步地,所述性能优化装置还包括:
设置模块,用于当接收到设置所述排序策略的设置请求后,根据所述设置请求设置所述数据节点对应的排序策略。
需要说明的是,性能优化装置的各个实施例与上述性能优化方法的各实施例基本相同,在此不再详细赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有性能优化程序,所述性能优化程序被处理器执行时实现如上所述性能优化方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种性能优化方法,其特征在于,所述性能优化方法包括以下步骤:
当接收到客户端发送的数据读取请求后,获取所述数据读取请求对应的数据块所在的数据节点;
获取所述数据节点对应的预设排序策略,按照所述排序策略对所述数据节点进行排序,得到数据节点列表;
将所述数据节点列表返回给所述客户端,以供所述客户端根据所述数据节点列表确定提供读数据块服务的数据节点。
2.如权利要求1所述的性能优化方法,其特征在于,当所述排序策略为第一排序策略时,所述按照所述排序策略对所述数据节点进行排序,得到数据节点列表的步骤包括:
获取所述数据节点对应的压力值;
根据所述压力值确定所述数据节点对应的压力,将所述数据节点按照所述压力从小到大的顺序排序,得到数据节点列表。
3.如权利要求2所述的性能优化方法,其特征在于,所述获取所述数据节点对应的压力值的步骤包括:
获取所述数据节点的压力数据;
根据所述压力数据和预设的压力数据分值标准,得到所述数据节点的压力数据分值;
根据所述压力数据分值和对应预设的压力数据权重值,计算得到所述数据节点对应的压力值。
4.如权利要求1所述的性能优化方法,其特征在于,当所述排序策略为第二排序策略时,所述按照所述排序策略对所述数据节点进行排序,得到数据节点列表的步骤包括:
将所述数据节点按照与所述客户端的距离由近到远的顺序排序,得到预处理数据节点列表;
获取所述数据节点对应的压力值,检测所述数据节点对应的压力值是否满足预设条件;
当检测到所述数据节点对应的压力值满足预设条件时,将所述压力值满足预设条件的数据节点移动到所述预处理数据节点列表的末端,得到处理后的数据节点列表。
5.如权利要求1所述的性能优化方法,其特征在于,当所述排序策略为第三排序策略时,所述按照所述排序策略对所述数据节点进行排序,得到数据节点列表的步骤包括:
将所述数据节点进行随机排序,得到数据节点列表。
6.如权利要求1所述的性能优化方法,其特征在于,所述将所述数据节点列表返回给所述客户端,以供所述客户端根据所述数据节点列表确定提供读数据块服务的数据节点的步骤包括:
将所述数据节点列表返回给所述客户端,以供所述客户端将所述数据节点列表中排在最前面的数据节点确定为提供读数据块服务的数据节点。
7.如权利要求1至6任一项所述的性能优化方法,其特征在于,所述当接收到客户端发送的数据读取请求后,获取所述数据读取请求对应的数据块所在的数据节点的步骤之前,还包括:
当接收到设置所述排序策略的设置请求后,根据所述设置请求设置所述数据节点对应的排序策略。
8.一种性能优化装置,其特征在于,所述性能优化装置包括:
获取模块,用于当接收到客户端发送的数据读取请求后,获取所述数据读取请求对应的数据块所在的数据节点;获取所述数据节点对应的预设排序策略;
排序模块,用于按照所述排序策略对所述数据节点进行排序,得到数据节点列表;
数据返回模块,用于将所述数据节点列表返回给所述客户端,以供所述客户端根据所述数据节点列表确定提供读数据块服务的数据节点。
9.一种性能优化设备,其特征在于,所述性能优化设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的性能优化程序,所述性能优化程序被所述处理器执行时实现如权利要求1至7中任一项所述的性能优化方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有性能优化程序,所述性能优化程序被处理器执行时实现如权利要求1至7中任一项所述的性能优化方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811323508.XA CN111159131A (zh) | 2018-11-07 | 2018-11-07 | 性能优化方法、装置、设备及计算机可读存储介质 |
PCT/CN2019/116024 WO2020094064A1 (zh) | 2018-11-07 | 2019-11-06 | 性能优化方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811323508.XA CN111159131A (zh) | 2018-11-07 | 2018-11-07 | 性能优化方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111159131A true CN111159131A (zh) | 2020-05-15 |
Family
ID=70554758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811323508.XA Pending CN111159131A (zh) | 2018-11-07 | 2018-11-07 | 性能优化方法、装置、设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111159131A (zh) |
WO (1) | WO2020094064A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995280A (zh) * | 2021-02-03 | 2021-06-18 | 北京邮电大学 | 面向多内容需求服务的数据分配方法和装置 |
CN113778346A (zh) * | 2021-11-12 | 2021-12-10 | 深圳市名竹科技有限公司 | 数据读取方法、装置、设备和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11425980B2 (en) | 2020-04-01 | 2022-08-30 | Omachron Intellectual Property Inc. | Hair dryer |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546782A (zh) * | 2011-12-28 | 2012-07-04 | 北京奇虎科技有限公司 | 一种分布式系统及其数据操作方法 |
CN104156381A (zh) * | 2014-03-27 | 2014-11-19 | 深圳信息职业技术学院 | Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统 |
US20150067004A1 (en) * | 2005-01-12 | 2015-03-05 | Wandisco, Inc. | Distributed file system using consensus nodes |
CN108009260A (zh) * | 2017-12-11 | 2018-05-08 | 西安交通大学 | 一种大数据存储下结合节点负载和距离的副本放置方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550362B (zh) * | 2015-12-31 | 2019-11-19 | 浙江大华技术股份有限公司 | 一种存储系统的索引数据修复方法和存储系统 |
US10432531B2 (en) * | 2016-06-28 | 2019-10-01 | Paypal, Inc. | Tapping network data to perform load balancing |
US20180285167A1 (en) * | 2017-04-03 | 2018-10-04 | Ocient, Inc | Database management system providing local balancing within individual cluster node |
-
2018
- 2018-11-07 CN CN201811323508.XA patent/CN111159131A/zh active Pending
-
2019
- 2019-11-06 WO PCT/CN2019/116024 patent/WO2020094064A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150067004A1 (en) * | 2005-01-12 | 2015-03-05 | Wandisco, Inc. | Distributed file system using consensus nodes |
CN102546782A (zh) * | 2011-12-28 | 2012-07-04 | 北京奇虎科技有限公司 | 一种分布式系统及其数据操作方法 |
CN104156381A (zh) * | 2014-03-27 | 2014-11-19 | 深圳信息职业技术学院 | Hadoop分布式文件系统的副本存取方法、装置和Hadoop分布式文件系统 |
CN108009260A (zh) * | 2017-12-11 | 2018-05-08 | 西安交通大学 | 一种大数据存储下结合节点负载和距离的副本放置方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995280A (zh) * | 2021-02-03 | 2021-06-18 | 北京邮电大学 | 面向多内容需求服务的数据分配方法和装置 |
CN113778346A (zh) * | 2021-11-12 | 2021-12-10 | 深圳市名竹科技有限公司 | 数据读取方法、装置、设备和存储介质 |
CN113778346B (zh) * | 2021-11-12 | 2022-02-11 | 深圳市名竹科技有限公司 | 数据读取方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020094064A1 (zh) | 2020-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2016382908B2 (en) | Short link processing method, device and server | |
JP6626211B2 (ja) | ショートリンクを処理する方法及び装置並びにショートリンクサーバ | |
CN109218133B (zh) | 网络速度测试系统、方法、装置及计算机可读存储介质 | |
CN109492019B (zh) | 业务请求响应方法、装置、计算机设备和存储介质 | |
CN109299157B (zh) | 一种分布式大单表的数据导出方法及装置 | |
CN111159219B (zh) | 一种数据管理方法、装置、服务器及存储介质 | |
CN111159131A (zh) | 性能优化方法、装置、设备及计算机可读存储介质 | |
CN110413978B (zh) | 数据分页导出方法、装置、计算机设备和存储介质 | |
CN112732756B (zh) | 数据查询方法、装置、设备及存储介质 | |
CN103095824A (zh) | 文件上传控制方法及系统 | |
CN109325056A (zh) | 一种大数据处理方法及装置、通信设备 | |
CN110784336A (zh) | 基于物联网的多设备智能定时延时场景设置方法及系统 | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN109885384B (zh) | 任务并行度优化方法、装置、计算机设备及存储介质 | |
CN104144170A (zh) | 网页地址的过滤方法、装置和系统 | |
CN114553762A (zh) | 一种对流表中的流表项处理的方法及装置 | |
CN107193749B (zh) | 测试方法、装置及设备 | |
CN110874365B (zh) | 一种信息查询方法及其相关设备 | |
US20140214826A1 (en) | Ranking method and system | |
CN110955460A (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN116776030A (zh) | 灰度发布方法、装置、计算机设备、存储介质 | |
CN107690057B (zh) | 会议视频数据交互方法及装置 | |
CN106446080B (zh) | 数据查询的方法、查询服务设备、客户端设备和数据系统 | |
CN110134547B (zh) | 一种基于中间件的重复数据删除方法和相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |