一种面向HBase的性能测试系统的利记博彩app

文档序号:9417517阅读:486来源:国知局
一种面向HBase的性能测试系统的利记博彩app
【技术领域】
[0001]本发明涉及分布式数据库的测试领域,尤其涉及一种面向HBase的性能测试系统。
【背景技术】
[0002]随着信息技术的飞速发展,信息时代产生的数据日益在膨胀,Hadoop作为解决大数据领域的重要技术手段,目前被广泛应用着。而HBase作为Hadoop技术栈中的分布式数据库,负责大数据解决方案中的海量结构化数据存储服务这一重要职责。在实际的生产运行过程中,时常伴随着突发故障定位、持续性能优化等工作,这些工作需要借助性能测试工具得以开展。市面上已有针对于nosql数据库的通用性能测试工具,如雅虎ycsb、英特尔big data benchmark,这些测试工具依托HBase的公开api,模拟HBase客户端或应用的行为,根据测试者的需求,来完成简单通用的并发读写性能测试,并生成测试报告。
[0003]但是现有的性能测试方案存在诸多的不足:
[0004]1、上述市面上已存在的nosql数据库通用测试工具,仅提供了基本、常见、通用的测试方式。用于测试HBase时,只能通过其发掘常见问题,无法针对HBase的产品特性,提供基于其特性的定制测试,难以支持数据库产品的新特性应用与调优工作。
[0005]2、上述测试工具在测试方案和测试数据制作的定制能力较为薄弱,无法一次执行多个测试案例,或对查询、写入动作进行细节定制。
[0006]3、上述测试工具均由国外企业开发,使用文档与资料匮乏,难以完全掌握其使用方法和技巧,测试结果的正确性存在隐患。
[0007]针对目前市场上采用的测试工具的诸多不足,因此需要提出一套新的测试方案。

【发明内容】

[0008]本发明要解决的技术问题,在于提供一种针对HBase的可配置测试系统,提供了与HBase自身特性相关联的测试方案,促进HBase在生产运维阶段的性能调整优化工作,相较于其他性能测试工具,更易于使用,便于扩展。
[0009]本发明是这样实现的:一种面向HBase的性能测试系统,包括:
[0010]任务解析器,导入测试任务并解析,并将解析好的测试任务传递给任务组织器,所述测试任务包括性能测试任务及并发测试任务;
[0011 ] 任务组织器,通过获取测试任务创建任务线程池以及至少一个任务线程,所述任务组织器执行完一个测试任务自动执行下一个测试任务,直至所有测试任务执行完毕;
[0012]任务线程池,所述任务线程池管理任务线程,负责启动、监控所有任务线程;
[0013]任务线程,在性能测试工作中任务线程根据性能测试任务中配置的线程数,由任务组织器创建对应数量的任务线程,交由任务线程池管理,每个任务线程依次执行读取、扫描测试任务;在并发测试工作中由任务组织器创建对应的请求到任务线程中,并发执行并发请求测试任务;每个任务线程通过HBase适配模块与HBase数据库交互;
[0014]HBase适配模块,与HBase数据库进行交互;
[0015]日志与测试报告生成器,获得每个测试任务的执行结果,将测试报告写入日志中。
[0016]所述任务解析器包括:
[0017]配置文件解析器,导入已配置好的性能测试任务并解析,并将其传递给任务组织器;方案组件解析器,导入已配置好的并发测试任务并解析,并将其传递给任务组织器。
[0018]所述性能测试任务、并发测试任务的配置步骤包括:
[0019]分析HBase集群剩余容量与测试所需的数据量确定数据规模及测试需求;
[0020]根据测试目的以及HBase集群的承载能力,确定写入操作的分布情况以及HFile的数量,制定每批次导入的kv数以及是否立即持久化为HFile ;
[0021]建立BloomFilter策略,确定建表方式的配置;
[0022]根据kerberos的开启情况,配置安全校验参数;
[0023]生成配置文件并导入所述配置文件解析器、方案组件解析器。
[0024]其中,如导入单位时间负载大于HBase集群的承载能力则终止导入,降低批次导入的kv数并重新执行导入工作;若导入异常终止则生成进度点,依据进度点实现断点续传。
[0025]其中,所述的导入包括按行导入或按列导入。
[0026]其中,所述数据规模包括:rowkey长度、value长度、kv总数。
[0027]其中,所述任务线程顺序、同时或乱序启动任务线程。
[0028]本发明的优点在于:
[0029]其一、本发明提供了更为贴近HBase自身特性的测试数据导入方案及测试方案,得以支持现阶段HBase的一些主要特性;针对HFile数量控制需求,市面上已有的测试工具几乎无法在测试数据导入阶段加以控制,本发明通过定制导入批次数据的数据量、持久化时机的能力,实现了较为精确的HFile总量控制,与HFile数量有关的特性测试将变得更加方便;本发明支持对HBase的方向扫描测试、BloomFilter策略性能测试、单位时间压力流量测试、请求响应顺序测试,这些功能是目前市面上已有的测试工具所不具备的。
[0030]其二、本发明采用配置好的测试任务,实现了测试数据结构的定制、总体数据规模较为精确的控制;本发明可一次执行多个测试任务,降低了测试过程对测试员的依赖。
[0031]其三、具备详实的使用文档与资料,以具备更多的特性测试功能,操作简易。
【附图说明】
[0032]图1为本发明的面向HBase的性能测试系统的结构框图。
[0033]标号说明:
[0034]配置文件解析器-001方案组件解析器-002任务组织器-003
[0035]任务线程池-004 HBase适配模块-005 HBase数据库-006
[0036]日志与测试报告生成器-007
【具体实施方式】
[0037]为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
[0038]HBase是一个分布式、面向列的开源数据库,它不同于一般的关系型数据库,它是一个适合于结构化/非结构化数据存储的数据库,基于列而非基于行,适宜处理海量数据,大批量操作响应速度很快。
[0039]HFile是HBase中的KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件,实际上StoreFile做了轻量级包装,即StoreFile底层就是HFile。HFile文件是不定长的,长度固定的只有其中的两块。HFile里面的每个KeyValue对就是简单的byte数组,但是这个byte数组里面包含了很多项,并且有固定的结构,其结构具体如下:开始是两个固定长度的数值,分别表示key的长度和Value的长度,紧接着是Key,开始是固定长度的数值,表示RowKey的长度,紧接着是RowKey,然后是固定长度的数值,表示Family的长度,然后是Family,接着是Qualifier,然后是两个固定长度的数值,表示Time Stamp和KeyType。Value部分没有这么复杂的结构,就是纯粹的二进制数据。
[0040]以下结合附图1说明本发明提供一种面向HBase的性能测试系统,包括:
[0041]任务解析器,导入已配置的测试任务并解析,并将解析好的测试任务传递给任务组织器003,所述测试任务包括性能测试任务及并发测试任务;所述测试任务依据测试需求由人工进行编制,并将其导入所述的任务解析器进行测试任务的解析,所述解析的目的是将人工编制的测试作业配置文件如XML文件交由配置文件解析器001来读取,获取测试工作所需的配置参数,将此参数交给任务组织器003,由任务组织器003依据此参数配置来组织测试作业。所述的导入可采用常规的有线或者无线方式实现数据的传输,如可采用远程或者近程导入,导入可采用按行导入的方式或者按列导入的方式。在所述测试任务进行导入的过程中,若导入单位时间负载大于HBase集群的承载能力则终止导入,降低批次导入的KV数并重新执行导入工作;若导入异常终止则生成进度点,依据进度点实现断点续传。所述异常终止的情况包括集群网络故障、硬件故障、人为关闭Hdfs或人为关闭HBase服务等情况。
[0042]任务组织器003,通过获取测试任务创建任务线程池004以及至少一个任务线程,所述任务组织器003执行完一个测试任务自动执行下一个测试任务,直至所有测试任务执行完毕;在性能测试任务中,任务组织器003依据所配置的测试任务,制定读取/扫描测试操作的目标表、CoIumnFamiIy、Column,确认读取/扫描的次数、起止rowkey、或起始rowkey与扫描行数,制定测试的线程数。在并发测试任务中,根据测试任务所定制的需求,确定各类请求的种类,如:读取、扫描、写入或批量写入,确定请求细节、请求顺序、执行顺序,所述的执行顺序可以为顺序执行、同时执行、乱序执行任务线程。
[0043]任务线程池004,所述任务线程池004管理任务线程,负责启动、监控所有任务线程;
[0044]任务线程,在性能测试工作中任务线程根据性能测试任务中配置的线程数,由任务组织器003创建对应数量的任务线程,交由任务线程池004管理,每个任务线程依据测试任务依次执行读取、扫描测试任务;在并发测试工作中由任务组织器003创建对应的请求到任务线程中,并发执行并发请求测试任务;每个任务线程通过HBase适配模块005与HBase数据库006交互;所述任务线程执行任务时各个任务线程可乱序、顺序或者同时执行任务。在性能测试任务中,如若用户需要测试BloomFilter的三个策略各自的性能,那么性能测试作业配置将呈现出依次执行的三次扫描测试作业的配置方法;而当用户需要收集单位时间内N个任务线程同时发起扫描时的HBase承载能力、数据吞吐量、每秒处理的操作数,那么测试作业配置将采用并发执行测试任务的方式,呈现出同一时间多个任务线程同时执行扫描作业的配置方法。
[0045]待所有任务线程完成任务,则将所有子任务执行结果提交给测试报告生成器。如图所示,所述任务线程控制着任务线程1、任务线程2、任务线程3、任务线程4、任务线程5。
[0046]HBase适配模块005,与HBase数据库006进行交互;所述HBase适配模块005使用HBaseJava API与HBase数据库006进行交互,对任务线程提供查询、扫描、写入、建表、持久化等服务,依据任务线程的请求执行工作。
[0047]日志与测试报告生成
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1