Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种分片切分的方法和装置 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

摘要:本发明公开了分片切分的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取当前目标表在服务器上最大分片的大小;确定最大分片的大小大于分片大小阈值,则执行对所述分片的切分;其中,所述的分片大小阈值根据当前目标表在服务器上的分片数量获得。该实施方式能够有效提升集群资源利用率,并解决了数据热点问题。

主权项:1.一种分片切分的方法,其特征在于,包括:获取当前目标表在服务器上最大分片的大小;确定最大分片的大小大于分片大小阈值,则执行对所述分片的切分;其中,根据当前目标表在服务器上的分片数量,通过对数算法获得所述的分片大小阈值;根据当前目标表在服务器上的分片数量,通过对数算法获得所述的分片大小阈值,包括:检测当前目标表在服务器上的分片数量;计算分片大小阈值:分片大小阈值=ln分片数量*磁盘空间+分片基数;其中,磁盘空间和分片基数通过当前服务器上的配置文件获取。

全文数据:一种分片切分的方法和装置技术领域本发明涉及计算机技术领域,尤其涉及一种分片切分的方法和装置。背景技术HBaseHBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价服务器上搭建起大规模结构化存储集群。技术已经广泛应用在大数据领域,其特点是可以水平扩展集群的规模,将大量的数据均匀分布在集群的每台服务器上,从而获得非常高的读写性能。然而,现有的HBase数据分片管理方法不能有效的利用集群资源,并存在热点问题。HBase分片切分有两种常规做法:第一种,定值算法,使用固定的分片大小。例如:设置每个分片固定为50G,当任何一个数据分片大小达到50G时,HBase系统会将这个分片切分为两个25G的分片。此方法简单易行,但是当数据量小于50G的时候,将会产生热点。此分片存储在集群中的某一台服务器上,集群中只有此服务器繁忙,其他服务器空闲。集群的资源利用率非常低,无法发挥HBase分布式的优势。第二种,立方算法,公式为:基本分片大小*2*分片数量^3。首先设置一个基本分片大小,例如128M。然后检查指定表在当前服务器上的分片数量,例如有1个分片;代入公式:128M*2*1^3=256M。其意义是在分片大小达到256M的时候进行切分,切分为两个128M大小的分片。以次类推,1个分片时分片大小为128M,2个分片时大小为1024M,3个分片时大小为3456M。直到分片大小达到我们设置的最大数值,例如最大分片为40G。此方法解决了上述第一种方法的热点问题,但是引出了新的问题,将会产生很多10G以下的小文,严重影响HBase集群的性能。在实现本发明过程中,发明人发现现有技术中至少存在如下问题:现有的HBase分片切分方法主要存在两个问题:第一种定值算法会产生热点问题,即当数据量较小的时候,数据会集中在一台服务器的一个数据分片上面,读写效率低,集群资源利用率不均衡。第二种立方算法则会产生小文件问题,按照立方算法将产生很多的小数据分片,本质上是许多小文件,在对这些小文件在进行读写查询时效率很低,影响了集群的性能。发明内容有鉴于此,本发明实施例提供一种分片切分的方法和装置,能够有效提升集群资源利用率,并解决了数据热点问题。为实现上述目的,根据本发明实施例的一个方面,提供了一种分片切分的方法,包括获取当前目标表在服务器上最大分片的大小;确定最大分片的大小大于分片大小阈值,则执行对所述分片的切分;其中,所述的分片大小阈值根据当前目标表在服务器上的分片数量获得。可选地,根据当前目标表在服务器上的分片数量,通过对数算法获得所述的分片大小阈值。可选地,根据当前目标表在服务器上的分片数量,通过对数算法获得所述的分片大小阈值,包括:检测当前目标表在服务器上的分片数量;计算分片大小阈值:分片大小阈值=ln分片数量*磁盘空间+分片基数;其中,磁盘空间和分片基数通过当前服务器上的配置文件获取。可选地,还包括:当最大分片的大小小于或等于分片大小阈值时,则等待预设时间段,再获取当前目标表在服务器上最大分片的大小。可选地,所述服务器为HBase集群中的服务器。另外,根据本发明实施例的一个方面,提供了一种分片切分的装置,包括获取模块,用于获取当前目标表在服务器上最大分片的大小;切分模块,用于确定最大分片的大小大于分片大小阈值,则执行对所述分片的切分;其中,所述的分片大小阈值根据当前目标表在服务器上的分片数量获得。可选地,所述切分模块根据当前目标表在服务器上的分片数量,通过对数算法获得所述的分片大小阈值。可选地,所述切分模块根据当前目标表在服务器上的分片数量,通过对数算法获得所述的分片大小阈值,包括:检测当前目标表在服务器上的分片数量;计算分片大小阈值:分片大小阈值=ln分片数量*磁盘空间+分片基数;其中,磁盘空间和分片基数通过当前服务器上的配置文件获取。可选地,所述获取模块,还用于:当最大分片的大小小于或等于分片大小阈值时,则等待预设时间段,再获取当前目标表在服务器上最大分片的大小。可选地,所述服务器为HBase集群中的服务器。根据本发明实施例的另一个方面,还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一分片切分的实施例所述的方法。根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一分片切分的实施例所述的方法。上述发明中的一个实施例具有如下优点或有益效果:本发明使用对数算法,对分片进行切分管理,解决了HBase集群分片切分的热点问题和小文件问题。从而,提升了HBase集群的性能和集群资源率,让客户端读写性能得到大幅提升,并且HBase集群的负载下降。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本发明,不构成对本发明的不当限定。其中:图1是根据本发明实施例的分片切分的方法的主要流程的示意图;图2是根据本发明可参考实施例的分片切分的方法的主要流程的示意图;图3是根据本发明可参考实施例的分片大小单位MB对比图;图4是根据本发明可参考实施例的小分片单位GB的对比图;图5是根据本发明实施例的分片切分的装置的主要模块的示意图;图6是本发明实施例可以应用于其中的示例性系统架构图;图7是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1是根据本发明实施例的分片切分的方法,如图1所示,所述分片切分的方法包括:步骤S101,获取当前目标表在服务器上最大分片的大小。较佳地,其中所述的服务器为HBase集群中的服务器。步骤S102,确定最大分片的大小大于分片大小阈值,则执行对所述分片的切分。其中,所述的分片大小阈值根据当前目标表在服务器上的分片数量获得。较佳地,根据当前目标表在服务器上的分片数量,通过对数算法获得所述的分片大小阈值。优选地,在根据当前目标表在服务器上的分片数量获取分片大小阈值时,可以通过检测当前目标表在服务器上的分片数量,然后根据下面公式计算获得所述分片大小阈值。分片大小阈值=ln分片数量*磁盘空间+分片基数。进一步地,在公式中的磁盘空间和分片基数通过当前服务器上的配置文件获取。还值得说明的是,当最大分片的大小小于或等于分片大小阈值时,则可以等待预设时间段,然后再执行步骤S101和步骤S102。根据上面的各种实施例,可以看出所述的分片切分的方法,本发明通过使用对数算法对HBase集群的分片进行切分,解决了HBase集群的热点问题,使HBase集群资源得到充分利用。同时,能够解决分片的热点问题,大幅提升了集群的读写性能。图2是根据本发明可参考实施例的分片切分的方法的主要流程的示意图,应用于服务器,所述分片切分的方法可以包括:步骤S201,获取当前服务器上存储的HBase集群的配置文件,以读取磁盘空间和分片基数。其中,分片基数:通常设置为128M或者256M,作为初始的切分基数通常比较小,当数据量较小时可以尽快进行分片的切分,让分片均匀分布在集群的各个节点上。磁盘空间:单位为GB,为HBase集群需要占用该台服务器进行数据存储的磁盘空间,通常等于一台服务器上磁盘的总容量。步骤S202,检测当前目标表在服务器上的分片数量。其中,分片数量:指目标表在当前服务器的分片数量。步骤S203,计算分片大小阈值。在实施例中,根据分片数量、磁盘空间和分片基数,计算当前服务器进行切分的分片大小阈值,具体地:分片大小阈值=ln分片数量*磁盘空间+分片基数。步骤S204,获取当前目标表在服务器上最大分片的大小。步骤S205,判断最大分片的大小是否大于分片大小阈值,如果是则进行步骤S206,否则进行步骤S207。步骤S206,执行切分,返回步骤S201。步骤S207,等待预设时间段,然后返回步骤S201。作为实施例,可以等待预设时间段之后,继续执行步骤S201至步骤S207,即可以继续对目标表的分片进行切分。值得说明的是,通过本发明从如下分片大小对比图如图3所示可以看出:对比图中的直线为定值算法会产生数据热点;对比图中的折线为立方算法在数据膨胀初期将产生大量的小分片;而对比图中的曲线为对数算法则很好的解决了热点问题和小分片问题。另外,如下表也可以看出本发明所采用的分片切分方法不同于现有技术中的定值算法和立法算法。分片大小单位MB对比表:同时,从如下小分片对比图如图4所示可以看出:定值算法没有小分片,但是有严重的热点问题;立方算法有8%的分片小于10G,这些分片严重影响集群的性能;对数算法只有2%的分片小于10G,并且随着数据量增大,大的分片永远占有更高比例。上述针对小分片也可参考下表:小分片单位GB对比表:分片大小定值算法立方算法对数算法=40G100%88%78%图5是根据本发明实施例的分片切分的装置,如图5所示,所述分片切分的装置500包括获取模块501和切分模块502。其中,获取模块501可以获取当前目标表在服务器上最大分片的大小。然后切分模块502确定最大分片的大小大于分片大小阈值,则执行对所述分片的切分。其中,所述的分片大小阈值根据当前目标表在服务器上的分片数量获得。进一步地,其中所述的服务器为HBase集群中的服务器。作为一个较佳地的实施例,根据当前目标表在服务器上的分片数量,通过对数算法获得所述的分片大小阈值。进一步地,在根据当前目标表在服务器上的分片数量获取分片大小阈值时,可以通过检测当前目标表在服务器上的分片数量,然后根据下面公式计算获得所述分片大小阈值。分片大小阈值=ln分片数量*磁盘空间+分片基数。优选地,在公式中的磁盘空间和分片基数通过当前服务器上的配置文件获取。还值得说明的是,获取模块501当最大分片的大小小于或等于分片大小阈值时,则可以等待预设时间段,然后再获取当前目标表在服务器上最大分片的大小。需要说明的是,在本发明所述分片切分的装置的具体实施内容,在上面所述分片切分的方法中已经详细说明了,故在此重复内容不再说明。图6示出了可以应用本发明实施例的分片切分的方法或分片切分的装置的示例性系统架构600。或者图6示出了可以应用本发明实施例的分片切分的方法或分片切分的装置的示例性系统架构600。如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等仅为示例。终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器仅为示例。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果例如目标推送信息、产品信息--仅为示例反馈给终端设备。需要说明的是,本发明实施例所提供的分片切分的方法一般由服务器605执行,相应地,分片切分的装置一般设置于服务器605中。应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图7所示,计算机系统700包括中央处理单元CPU701,其可以根据存储在只读存储器ROM702中的程序或者从存储部分708加载到随机访问存储器RAM703中的程序而执行各种适当的动作和处理。在RAM703中,还存储有系统700操作所需的各种程序和数据。CPU701、ROM702以及RAM703通过总线704彼此相连。输入输出IO接口705也连接至总线704。以下部件连接至IO接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管CRT、液晶显示器LCD等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至IO接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和或从可拆卸介质711被安装。在该计算机程序被中央处理单元CPU701执行时,执行本发明的系统中限定的上述功能。需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器RAM、只读存储器ROM、可擦式可编程只读存储器EPROM或闪存、光纤、便携式紧凑磁盘只读存储器CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块和切分模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取当前目标表在服务器上最大分片的大小;确定最大分片的大小大于分片大小阈值,则执行对所述分片的切分;其中,所述的分片大小阈值根据当前目标表在服务器上的分片数量获得。根据本发明实施例的技术方案,能够有效提升集群资源利用率,并解决了数据热点问题。上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

权利要求:1.一种分片切分的方法,其特征在于,包括:获取当前目标表在服务器上最大分片的大小;确定最大分片的大小大于分片大小阈值,则执行对所述分片的切分;其中,所述的分片大小阈值根据当前目标表在服务器上的分片数量获得。2.根据权利要求1所述的方法,其特征在于,根据当前目标表在服务器上的分片数量,通过对数算法获得所述的分片大小阈值。3.根据权利要求2所述的方法,其特征在于,根据当前目标表在服务器上的分片数量,通过对数算法获得所述的分片大小阈值,包括:检测当前目标表在服务器上的分片数量;计算分片大小阈值:分片大小阈值=ln分片数量*磁盘空间+分片基数;其中,磁盘空间和分片基数通过当前服务器上的配置文件获取。4.根据权利要求1所述的方法,其特征在于,还包括:当最大分片的大小小于或等于分片大小阈值时,则等待预设时间段,再获取当前目标表在服务器上最大分片的大小。5.根据权利要求1-4任一所述的方法,其特征在于,所述服务器为HBase集群中的服务器。6.一种分片切分的装置,其特征在于,包括:获取模块,用于获取当前目标表在服务器上最大分片的大小;切分模块,用于确定最大分片的大小大于分片大小阈值,则执行对所述分片的切分;其中,所述的分片大小阈值根据当前目标表在服务器上的分片数量获得。7.根据权利要求6所述的方法,其特征在于,所述切分模块根据当前目标表在服务器上的分片数量,通过对数算法获得所述的分片大小阈值。8.根据权利要求7所述的装置,其特征在于,所述切分模块根据当前目标表在服务器上的分片数量,通过对数算法获得所述的分片大小阈值,包括:检测当前目标表在服务器上的分片数量;计算分片大小阈值:分片大小阈值=ln分片数量*磁盘空间+分片基数;其中,磁盘空间和分片基数通过当前服务器上的配置文件获取。9.根据权利要求6所述的装置,其特征在于,所述获取模块,还用于:当最大分片的大小小于或等于分片大小阈值时,则等待预设时间段,再获取当前目标表在服务器上最大分片的大小。10.根据权利要求6-9任一所述的装置,其特征在于,所述服务器为HBase集群中的服务器。11.一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。

百度查询: 北京京东尚科信息技术有限公司 北京京东世纪贸易有限公司 一种分片切分的方法和装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。