APP下载

Hadoop分布式存储架构的性能分析

2018-09-12王凌晖解云月周美华

现代电子技术 2018年18期
关键词:云计算

王凌晖 解云月 周美华

摘 要: 近几十年,随着互联网的发展,数据正在呈爆炸式增长。为了保存和处理这些数据,传统的IT架构已经满足不了,云计算应运而生。Hadoop是云计算下的一种分布式处理的软件架构,能够对大数据进行存储和处理,而它最核心的两大组件就是HDFS和MapReduce,分别实现了分布式文件存储和分布式并行任务处理。文中,将基于PEPA对HDFS进行建模分析,并对HDFS的性能进行评估。

关键词: Hadoop; 云计算; 分布式存储; HDFS; PEPA; 性能评估

中图分类号: TN915?34 文献标识码: A 文章编号: 1004?373X(2018)18?0092?04

Performance analysis of Hadoop distributed storage architecture

WANG Linghui, XIE Yunyue, ZHOU Meihua

(School of Information Engineering, Yangzhou University, Yangzhou 225000, China)

Abstract: In recent decades, data has been in explosive growth with the development of the Internet. As the traditional IT architecture cannot meet the requirements of storing and processing the data, cloud computing has emerged. Hadoop is a distributed processing software architecture using cloud computing, which can store and process big data. The two main core components of Hadoop is the Hadoop Distributed File System (HDFS) and MapReduce, which implement distributed file storage and distributed parallel task processing respectively. In this paper, modeling analysis for the HDFS is conducted based on the Performance Evaluation Process Algebra (PEPA), so as to evaluate the performance of the HDFS.

Keywords: Hadoop; cloud computing; distributed storage; HDFS; PEPA; performance evaluation

云计算是一种异于传统IT架构的模式,其数据分布存储和计算在不同的节点上。用户能够按照自己的需求获取所需的服务,而不需要从头搭建起整个架构。整个存储和计算对普通用户是透明的。用户可以像对水电付费一样对自己需要的计算能力付费。Hadoop[1]正是云计算下的一种分布式的数据处理框架,它有两大核心组件,MapReduce[2]和HDFS[3](Hadoop Distributed File System),分别负责数据的处理和读写。在本文中,使用一种形式化语言PEPA(Performance Evaluation Process Algebra)来对HDFS的性能进行分析。

1 背景介绍

1.1 HDFS架构

HDFS是一种分布式的文件存储架构,适合运行在通用硬件上;它是一个高度容错性的系统,适合部署在廉价的机器上。HDFS采用Master/Slave架构,一个HDFS集群通常由一个NameNode和多个DataNode组成。NameNode负责管理文件系统的元数据以及客户端对文件的访问。DateNode存储实际数据,一般是一个节点一个。HDFS暴露了文件系统的名字空间,以文件的形式存储数据。存储时一个文件会被分成一个或多个数据块,这些块存储在DataNode上。NameNode负责文件系统的名字空间操作,管理数据块到DataNode节点的映射。DataNode负责处理文件客户端的读写请求。

1.2 PEPA

PEPA是一種描述系统内部组件及组件之间交互的形式化语言[4?5],可以很好地应用到很多并发系统上[6?8],也可以抽取出系统的性能指标。在PEPA中,动作可以定义为([α,γ]),[α∈A]代表动作类型,[γ]代表动作速率,[A]是所有可能的动作集合。速率[γ]可以被看作指数分布的参数,因此[γ∈R+]。一个状态P在完成一个动作([α,γ])后转换为Q,记作[P?α,γ.Q],这次转移可以记为[P(α,γ)Q]。PEPA的语法介绍如下:

1) 前缀操作:[α,γ.P]

系统执行动作[α,γ]以后表现为状态P,执行动作为[α],执行时间服从参数为[γ]的指数分布。

2) 选择操作:P+Q

P+Q表示一个系统可能表现为状态P或者Q。如果P和Q的活动都执行,选择一个最先执行完的动作,另一个状态会被放弃,系统表现成选中动作的执行结果。并发操作如图1所示。

系统的两个状态P和Q是并发执行,其中L是可能的并发动作的集合,对于L中的任何动作,都需要P和Q相互协作这个动作才能执行。当执行不在L中的动作时,P和Q可以不用同步动作。记为[P∥Q]。

3) 隐藏操作:[PL]

集合L中的所有动作类型对外部的观察者来说都是隐藏的。系统表现为P除了集合L中任何活动类型都是隐藏的。

4) 常量操作:[A?P]

常量A的动作和组件P相似。通过相互递归定义来定义有限状态的无限行为。

2 PEPA模拟HDFS

2.1 HDFS模型

如图1所示,HDFS由三个组件组成[9]:Clinet组件,NameNode组件和DataNode组件。

2.1.1 Client

Client首先将要传输的文件分割成块(block)文件执行client_split_block动作,默认大小为64 MB。然后Client向NameNode组件发送数据请求执行client_send_write动作。Client收到NameNode返回的DataNode组件的可用信息以后,Client将块文件分割成package文件执行client_split_package动作,以流式写入的方式写入到DataNode节点执行client_send_package动作。

数据发送完毕后,Client会收到DataNode发送的发送完毕消息,然后Client向NameNode发送数据发送结束消息执行client_send_done动作。本次数据发送结束。

[Client1?client_split_block,rclient_split_block.Client2]

[Client2?client_send_write,rclient_send_write.Client3]

[Client3?namenode_return_availabilty,?.Client4]

[Client4?client_split_package,rclient_split_package.Client5]

[Client5?client_send_package,rclient_send_package.Client6]

[Client6?datanode_send_client,?.Client7]

[Client7?client_send_done,rclient_send_done.Client0]

2.1.2 NameNode

NameNode收到Client的发送数据请求以后,返回DataNode的可用信息执行nameNode_return_availabilty动作,当DataNode接收完Client发送的数据后,会同时向NameNode和Client发送结束消息,然后Client收到结束消息后,接着会向NameNode发送结束消息,发送完毕。

[NameNode1?client_send_write,?.NameNode2]

[NameNode2?namenode_return_availabilty,rnamenode_return_availabilty.][NameNode3]

[NameNode3?datanode_send_namenode,?.NameNode4]

[NameNode4?client_send_done,?.NameNode0]

2.1.3 DataNode

当Client把block块分割成package以后,接着会把这些package发送到DataNode,DataNode接收完毕以后,同时向NameNode和Client发送结束消息,执行datanode_send_namenode动作和datanode_send_client动作。

[DataNode1?client_send_package,?.DataNode2]

[DataNode2?datanode_send_namenode,rdatanode_send_namenode.]

[datanode_send_client,rdatanode_send_client.DataNode0]

定义相同的并行动作类型为[CM?(C||…||C)],可以得到系统描述如下:

[Client1M?L1NameNode11?L2DataNode1N],

[L1={client_send_write,namenode_return_availabilty,]

[client_send_package,datanode_send_client,client_send_done}]

[L2={datanode_send_namenode}]

2.2 參数设置

表1规定了PEPA模型中每个动作的速率。表2给定了各组件的初始个数。

2.3 仿 真

通过Matlab对HDFS的文件存储进行模拟仿真。主要是得到系统的响应时间,响应时间是指从执行第一个动作开始到最后一个动作结束经过的时间,它是一个系统性能的重要指标。而在下面的实验中,它是从client_split_block到client_send_done动作结束的持续时间。

图2显示Client组件对响应时间的影响,随着Client数量的增多,响应时间逐渐增大。因为这是随着Client的增大,任务量逐渐增大,需要处理的文件变多。同时也说明,随着任务的增多,HDFS的存储能力也在下降。

DataNode数量与响应时间的关系如图3所示,3条曲线基本没有区别,这表明DataNode节点对响应时间的影响并不是很大,因为在存储数据时,只需要随机地选择3个DataNodes(默认情况下),即使DataNode数量很多,也并不能影响读写数据的速度。

从图4可以看出,随着Client_send_package速率的提高,响应时间在减少,但是当速率提高到一定程度时,响应时间基本不再变化。这是因为虽然Client发送数据包的速度提高了,但其他组件的速度并没有变化,当数据包到达其他组件时,处理速度没有跟上,拉低了整个系统的响应时间。但是在一定程度下,可以通过提高Client发送数据包的速度来降低响应时间,比如提高带宽,或者提高DataNode组件I/O能力等。

3 结 语

本文通过基于PEPA理论的建模和分析,找出不同组件之间的相互联系和交互,对影响HDFS性能瓶颈进行了分析。但是PEPA并不适用于云计算平台规模特别大的情况,这种情况下可以使用Fluid approximation method[10],它可以快速地得到在可接受范围内精度的结果,所以下一步的工作可以使用Fluid approximation method结合对大规模的云计算平台进行进一步分析。

参考文献

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

DONG Xinhua, LI Ruixuan, ZHOU Wanwan, et al. Performance optimization and feature enhancements of Hadoop system [J]. Journal of computer research and development, 2013, 50(S2): 1?15.

[2] 李成华,张新访,金海,等.MapReduce:新型的分布式并行计算编程模型[J].计算机工程与科学,2011,33(3):129?135.

LI Chenghua, ZHANG Xinfang, JIN Hai, et al. MapReduce: a new programming model for distributed parallel computing [J]. Computer engineering & science, 2011, 33(3): 129?135.

[3] 郝树魁.Hadoop HDFS和MapReduce架构浅析[J].邮电设计技术,2012(7):37?42.

HAO Shukui. Brief analysis of the architecture of Hadoop HDFS and MapReduce [J]. Designing techniques of posts and telecommunications, 2012(7): 37?42.

[4] DING J. A comparison of fluid approximation and stochastic simulation for evaluating content adaptation systems [J]. Wireless personal communications, 2015, 84(1): 231?250.

[5] DING J, HILLSTON J, LAURENSON D I. Evaluating the response time of large scale content adaptation systems using performance evaluation process algebra [C]// Proceedings of IEEE International Conference on Communications. Cape town: IEEE, 2010: 1?5.

[6] WANG H, LAURENSON D I, HILLSTON J. Evaluation of RSVP and mobility?aware RSVP using performance evaluation process algebra [C]// Proceedings of IEEE International Conference on Communications. Beijing: IEEE, 2008: 192?197.

[7] 潘耘,王励成,余镇危,等.基于随机进程代数的Overlay网络上的QoS性能评价[J].北京邮电大学学报,2009,32(z1):129?133.

PAN Yun, WANG Licheng, YU Zhenwei, et al. Based on stochastic process algebra overlay network QoS performance evaluation [J]. Journal of Beijing University of Posts and Telecommunications, 2009, 32(S1): 129?133.

[8] 黄金才,陈洒然,程光权.舰艇编队防空过程建模及分析[J].国防科技大学学报,2014,36(3):184?190.

HUANG Jincai, CHEN Saran, CHENG Guangquan. Modeling and analysis of air defense process for warship formation [J]. Journal of National University of Defense Technology, 2014, 36(3): 184?190.

[9] 李宽.基于HDFS的分布式Namenode节点模型的研究[D].广州:华南理工大学,2011.

LI Kuan. Research of the model of distributed Namenodes in HDFS [D]. Guangzhou: South China University of Technology, 2011.

[10] HILLSTON J. Fluid flow approximation of PEPA models [C]// Proceedings of Second International Conference on the Quantitative Evaluation of Systems. Torino: IEEE, 2005: 1?10.

猜你喜欢

云计算
志愿服务与“互联网+”结合模式探究
云计算与虚拟化
基于云计算的移动学习平台的设计
实验云:理论教学与实验教学深度融合的助推器
云计算中的存储虚拟化技术应用