面向非结构化的分布式存储系统的性能分析系统研究

2018-03-30 07:10关兆雄
微型电脑应用 2018年2期
关键词:服务器端存储系统客户端

关兆雄

(广东电网有限责任公司,佛山供电局,佛山 528000)

随着现代海量数据的增加,分布式存储技术成为研究的重点,并受到社会和学界的广泛关注。所谓的分布式存储是在传统PC服务器存储的基础上,通过Internet 互联的方式,从而作为一个整体提供相关的存储服务[1]。通过这种分布式存储的方式,不仅具有高可用性,同时还易于横向弹性扩展。同时,随着每天信息量的增加,开始以PB(1015字节)级单位增加,而在这PB级的数据增加中,包含着大量的非关系性的数据表格。这就给传统的关系型数据存储提出了挑战,如在海量访问背景下,每秒钟要达到上万次的读写访问,在这种高性能的读写请求背后,传统的关系型数据库则不能满足要求,出现超负载等问题[2]。通常为解决这个问题,人们通常会购买更大的服务器,以此满足不断增长的负载要求,但需要耗费大量的成本。而通过对分布式存储技术的应用,由于其管理者较多的应用服务器,从而可以处理大量的海量数据。如谷歌的Bigtable和MapReduce的结合,可以同时处理每天高达20 PB的数量访问量。但是在海量数据访问应用中,如何对非结构化的分布式存储系统的性能进行分析和测评,从而更好的为分布式存储系统的优化提供参考,成为当前研究的热点[3]。而结合上述的需求,构架一个对分布式存储系统性能分析的系统,则显得尤为必要。对此,本文结合当前的技术难点,提出一种轻量级的性能分析系统,并对其进行了详细的分析与阐述。

1 HBase分布式体系结构

在对当前分布式系统性能分析前,需要对分布式体系架构进行充分的了解。对此,本文则以HBase分布式体系为例,对该体系结构进行详细的分析。HBase属于一款轻量级分布架构,主要由主服务器(Master)和区域(Region)服务器集群两个部分构成。在实际的读写访问中,客户端直接与Region服务器进行交互,而不需要通过主服务器对服务器的分配,进而对不同服务器进行访问[4]。同时,HBase是建立在HDFS(Hadoop分布式文件系统)之上,具体结构,如图1所示。

图1 HBase分布式体系架构示意图

通过图1的示意图看出,Client发起一个访问请求,并直接发送给HRegionServer,当HRegionServer在接收到访问请求后,可直接分配给不同的RegionServer。同时在该分布式架构体系中,采用Zookeeper(保持程序)对其中的分布式应用程序进行协调和监控,如监控HBase系统的运行状态。在Zookeeper中存储了master地址和root(根)表地址,并负责选取主服务器。在这种机制下,可避免出现主服务器单点的问题。而RegionServer将Zookeeper作为通信的服务端,采用临时会话的方式注册到Zookeeper中,进而可以实时感知RegionServer的服务状态。

2 性能分析方法概述

2.1 主要方法

目前,针对分布式存储系统的分析中,通常采用两种方式,一种是通过客户端的角度对运行状态进行监控。这部分类似于传统程序测试中的黑盒测试,通过这种测试完成对程序性能的分析[5]。最为典型的则是雅虎公司开发的YCSB系统,该系统通过分析分布式存储系统的基本性能,包括整体的读写是否平衡等,进而帮助广大的开发人员选择不同的非结构化存储系统[6]。具体的结构,如图2所示。

图2 YCSB客户端结构示意图

在图2的示意图中,通过发出访问请求然后传递给workload Executor(负荷执行程序),通过其中的Client Threads(客户端)线程调用不同的数据访问接口,最终完成对数据访问的请求。在访问中,会实时数据访问的监控情况发送给统计模块,并最终生成监控报告。而通过这种监控,实时掌握客户端与云存储分布系统之间的数据交流情况。

除上述的基于客户端角度对性能进行监控以外,还可以从服务器端的角度对分布式系统的运行进行监控,并且大致可以将其分为以下几类方法:一类是对分布式程序运行进行跟踪,如Java工具。这类监控需要将元数据和请求关联起来,从而获取大量的系统请求的路径[7]。这类方法存在一个典型的缺陷,那就是必须对程序的源代码进行修改;第二类是对服务器集群进行全面的监控,具体监控的内容包括计算机的I/O、CPU负载等;第三类则是采用数据挖掘的方式,对其日志进行分析,从而了解分布式系统的性能[8]。

2.2 当前方法存在的问题

上述的性能分析方法中,无论是从客户端的角度,还是从服务器端的角度,都存在一定的局限性。以HBase分布式系统为例,采用上述的YCSB系统对运行的线程进行监控[9],并分别观察HBase系统在1G(109字节)内存和3GB内存下的线程数,从而可以得到在不同的内存大小下,其线程运行的趋势基本一致。在产生该问题后,需要考虑是否还存在其他的因素对HBase性能还有一定的影响。因此,如果单从客户端的角度对HBase系统的性能进行分析,还存在一定的片面性。还需要从多个不同的角度去分析。

同样,如单从服务器端对HBase系统的运行情况进行监测,可监测大量关于HBase系统的活动情况,但是这种检测通常具有很大的盲目性,并且无法找到潜在的制约HBase系统因素。

3 非结构化的分布式存储性能分析系统设计

针对上述的问题,如何在对HBase系统进行优监测中找到潜在的需要优化的部分,而不是将优化停留在传统的一些层面,而是根据不同的非结构化数据类型等进行特定的优化。对此,结合客户端、服务器和服务器集群中的监测器,提出在客户端和服务器端以外,单独设置一个性能数据分析服务器,从而将客户端和服务器端的数据关联起来进行统一的分析,以此通过这种关联,找到更多的制约HBase系统性能的因素[10]。因此,本文将该系统的功能模块分为3个模块,具体见如图3所示。

图3 性能分析系统模块

通过图3看出,本文结合传统性能分析系统的劣势,对客户端模块和服务器端模块进行同时监测,并通过单独设立性能分析系统服务器的方式,对采集到的性能数据进行统一分析和处理,以此提高数据分析的有效性,及时发现潜在的问题。同时,通过这种方式,还可以将客户端与服务器端的数据在同一个时间轴上关联起来,即客户端运行过程中服务器端的运行的状态相关联,通过这种实时关联,可以更好的对潜在的点进行优化[11]。

4 系统实现的技术难点

要完成上述的设计目标,需要解决两个问题,一是如何将客户端和服务器端的活动放在同一个时间轴上;另一个则是如何对采样到的性能数据进行分析,进而更好的展现分布式存储过程中的活动。对此,提出了轻量级的时间同步方法,同时采用数据流的方式实现对数据性能的分析。

4.1 基于轻量级的客户端与服务端时间同步

要将客户端和服务器端的活动放在同一个时间轴上,进而观测两端的活动,首先要对客户端和服务器端的活动进行同时监测。而要解决这个问题,本文提出以客户端上的计算机时间作为参考时间。服务集群中的监测器在对数据进行采集前,首先与参考的客户端计算机通信,然后以该参考时间作为监测起点,对非结构化的分布式存储系统运行进行监控[12]。同时,针对不同监测器与服务点之间的通信时间差,采用校正的方式进行修正。具体过程,如图4所示。

图4 时间同步处理机制

4.2 数据分析处理

为更好的加强对数据的分析,找到制约HBase非结构化分布式存储系统的因素,关键还是要如何对数据进行分析处理。对此,本文提出一种基于数据流的数据分析处理方式。具体的思路则是在对数据进行分析过程中,利用时间戳对监测数据采集进行调整,然后从数据流的角度[13],对服务器线程执行、任务执行和资源利用等情况进行分析[14]。具体处理流程,见图5所示。

5 实验测试

对此,为验证上述实验方案的可行性,本文搭建测试环境系统,其中选择10台计算机,其中9台为服务器集群,1台用于YCSB系统客户端。HBase系统版本采用0.90.4版本[15]。通过测试,可以得到HBase系统性能测评结果,如图6所示。

图5 数据分析处理流程

图6 HBase系统性能测评结果

通过上述对HBase性能测评看出,与标准的运行相比,在平均运行时间方面,要比参照的高0.21%和0.06%,同时吞吐量要低0.11%和0.02%。由此说明增加该系统后,对HBase系统的影响很小,同时可更好的反映HBase系统的运行情况。

6 总结

总之,对于分布式存储技术来讲,加强对其性能的分析,对提高HBase性能优化具有非常重要的作用,本文结合性能分析需求,以HBase系统为例,通过构建一个轻量级的系统,并以某计算机的时间作为参照时间,通过数据流分析方法,对客户端和服务器端的数据进行同时分析,进而更好的展示了HBase在运行过程中的情况,为其优化奠定了更好的基础。

[1] 王康. 基于NoSQL的分布式存储系统相关算法改进与性能优化[D].上海:上海师范大学,2016.

[2] 潘洪志. 高性能NoSQL存储系统的研究与实现[D].吉林:吉林大学,2014.

[3] 王珏,胡长军,张纪林,等. 面向分布式存储系统结构的OpenMP编译系统[J]. 中国科学:信息科学,2010(5):678-691.

[4] 周江,王伟平,孟丹,等. 面向大数据分析的分布式文件系统关键技术[J]. 计算机研究与发展,2014(2):382-394.

[5] 杜晓东. 大数据环境下基于Hbase的分布式查询优化研究[J]. 计算机光盘软件与应用,2014(8):22-24.

[6] 胡小春,李陶深,王乐,等. 基于NoSQL的大数据应用设计与性能保障方案研究[J]. 广西大学学报(自然科学版),2014(3):633-640.

[7] 詹剑锋,高婉铃,王磊,李经伟,魏凯,罗纯杰,韩锐,田昕晖,姜春宇. BigDataBench:开源的大数据系统评测基准[J]. 计算机学报,2016(1):196-211.

[8] 舒继武,陆游游,张佳程,等. 基于非易失性存储器的存储系统技术研究进展[J]. 科技导报,2016(14):86-94.

[9] 杨俊杰,廖卓凡,冯超超. 大数据存储架构和算法研究综述[J]. 计算机应用,2016(9):2465-2471.

[10] 吴飞,李宏发,王秋琳,等. 一种非结构化元数据的分级存储设计[J]. 信息技术,2017(6):44-47.

[11] 申德荣,于戈,王习特,等. 支持大数据管理的NoSQL系统研究综述[J]. 软件学报,2013(8):1786-1803.

[12] 黄山,王波涛,王国仁,等. MapReduce优化技术综述[J]. 计算机科学与探索,2013(10):885-905.

[13] 董新华,李瑞轩,周湾湾,等. Hadoop系统性能优化与功能增强综述[J]. 计算机研究与发展,2013,S2:1-15.

[14] 陆婷,房俊,乔彦克. 基于HBase的交通流数据实时存储系统[J]. 计算机应用,2015(1):103-107.

[15] 王林彬,黎建辉,沈志宏. 基于NoSQL的RDF数据存储与查询技术综述[J]. 计算机应用研究,2015(5):1281-1286.

猜你喜欢
服务器端存储系统客户端
Linux环境下基于Socket的数据传输软件设计
分布式存储系统在企业档案管理中的应用
如何看待传统媒体新闻客户端的“断舍离”?
天河超算存储系统在美创佳绩
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
华为震撼发布新一代OceanStor 18000 V3系列高端存储系统