网站首页  词典首页

请输入您要查询的论文:

 

标题 大数据计算与存储分离技术实验分析
范文

    吴金坛 章超 李树楠

    

    

    

    摘要:随着大数据的发展,传统的集群混合部署模式逐渐暴露出管理难、资源竞争、性能相互制约等问题。计算与存储分离部署方案不断发展,开始呈现其优势,但是在解决计算与存储资源弹性扩展、高容错和高可靠问题上,且具备兼顾虚拟机和容器两种部署方式的能力要求上,目前的方案都相形见绌。基于此,提出并实现了一种基于Ceph的大数据平台分离存储方案,解耦了计算与存储之间的绑定关系,同时实现了资源的弹性利用,并兼容了虚拟机和容器的兩种大数据部署方式。最后我们搭建了试验环境对方案的功能及性能进行了测试,对上述能力进行了验证。

    关键词:大数据;计算与存储分离;Ceph

    中图分类号:TP31文献标识码:A

    文章编号:1009-3044(2020)27-0024-04

    开放科学(资源服务)标识码(OSID):

    1 引言

    随着大数据的发展,传统的集群混合部署模式逐渐暴露出管理难、资源竞争、性能相互制约等问题[1]。由于网络已不再成为计算机的瓶颈,在这种情况下,计算与存储分离部署方式开始显现出它的优势,不仅能解决上述问题,而且能实现计算与存储资源的弹性扩展,为企业大幅度降低成本[2][3]。HDFS( Ha-doop Distributed File System)作为主流的分布式系统基础架构Hadoop的默认后端存储,具有高容错、高可靠性、高可扩展性等优点,但也存在一些不足之处,不能复用给虚拟机和容器,同时采用主从模式[4],存在单点故障以及内存受限等问题。针对上述这些问题,本文设计并实现了一种Hadoop对接Ceph对象存储方案,采用Ceph对象存储作为Hadoop的后端存储,避免了HDFS的不足之处,在实现了计算与存储分离的情况下同时兼顾了虚拟机大数据与容器大数据的统一存储。

    2 Hadoop计算与存储分离

    2.1 Hadoop计算与存储分离概述

    Hadoop大数据集群的计算存储分离指的是将Hadoop大数据处理系统中的计算组件和存储组件分别部署到不同的物理服务器中,通过高速网络实现计算组件和存储组件的消息通信与数据传输。计算与存储分离的优点:一、系统更健壮,计算存储可以各自进行检错,系统出错排查速度快,恢复效率高;二、系统调度更灵活,各自均衡负载实现简单;三、扩展性好,根据需求动态调整计算或存储的资源。计算与存储分离的缺点:计算与存储分离,使得中间数据传输更依赖于外部网络,数据的传输性能下降。

    2.2 现有技术方案

    Hadoop计算存储分离方案目前有三种:第一种是Hadoop与HDFS分离部署方案,通过Yarn进程远程调用;第二种是Ha-doop与S3A分离部署方案,通过S3A网关的形式把Hadoop的10请求以HTTP的方式访问远程存储;第三种是Hadoop3.x提出的Provided Storage存储方案,通过HDFS来远程访问其他异构存储。

    2.2.1 Hadoop与HDFS分离部署方案

    图1展示了Hadoop HDFS计算存储分离方案。Hadoop2.x版本的主要进程分为两部分:一部分进程运行的是资源调度模块Yarn,包括资源调度ResourceManager以及节点代理Nodma-nager;另一部分是分布式文件存储(HDFS)的进程,包括元数据处理NameNode以及数据管理DataNode。这两个模块可以独立运行,可以将NameNode和DataNode部署在一部分物理机上,而Yarn进程部署在其他虚拟机、容器或者物理机上。二者的网络能够通信,则计算与存储就可以分割开。

    这种方案的优点是配置简单,兼容性好,因为独立使用Ha-doop与HDFS进程,在网络互适时,通过对配置文件修改即可完成大数据集群配置的更改。相应的缺点也很明显,首先是HDFS属于文件系统,文件过多数据量过大会导致NameNode出现瓶颈;其次,服务器重启后,NameNode和DataNode进程需要手动重启;最后,多个大数据集群无法做到文件权限隔离。

    2.2.2 Hadoop与S3A分离部署方案

    图2是以S3A网关的形式对提供了对象存储服务的存储进行访问的方案。Hadoop提供了aws相关的jar包来访问带有S3A网关形式的对象存储,这种访问方式需要数据先经过RGW网关,再到物理磁盘设备上,很明显会出现网络带宽瓶颈的问题,并且S3A网关是通过HTTP短连接的形式来进行数据传输,对于大文件非常不友好,性能很差。

    2.2.3 Hadoop Provided Storage分离部署方案

    图3展示了Hadoop Provided Storage的存储方案[5],这种方案允许底层的HDFS调用其他存储,以达到计算与存储分离的效果,但是这种方案的不足之处也比较明显,首先是这种特性只支持文件的读操作,不支持文件的写操作,无法做到文件的更新。同时这种数据访问路径变长理论上性能会有影响。另外这种特性较新,工业界还没有确切的使用案例,因此在实验与分析章节没有做相关实验。

    3 基于Ceph的Hadoop分离存储方案

    Ceph因其高性能、高可用性、高可扩展性、特性丰富等已经成为私有云平台OpenStack的默认后端存储[6][7]。Ceph提供三种存储方式:对象存储、块存储和文件存储。相对于块存储和文件存储,对象存储采用键值存储机制,性能更好。

    Hadoop的MapReduce框架底层使用的是HDFS分布式文件存储系统,然而Hadoop本身提供了文件系统的扩展机制,使用者可以根据自己的需求来扩展底层的存储方式,达到替代HDFS的效果。基于此我们提出了基于Ceph的对象存储实现Hadoop的分离存储方案:系统底层使用Ceph对象存储,通过JNA的方式调用封装了Ceph对象存储接口的so文件,并在上层扩展了Hadoop的文件系统接口,完成MapReduce、Spark等使用FileSystem接口作为文件系统交互层的大数据集群的远程文件调用。

    如图4,在Hadoop与Ceph对象存储架构中,Hadoop与Ceph对象存储对接器包括Hadoop文件系统兼容接口模块、Hadoop文件系统操作实现模块、分布式存储对象数据访问模块三部分组成,其功能如下:

    Hadoop文件系统兼容接口模块:兼容实现Hadoop计算组件所需的FileSystem抽象接口,以屏蔽Hadoop计算应用对文件10的调用差异;实现Yarn资源调用所需要的文件系统接口,以实现对Ceph集群的读写。

    Hadoop文件系统操作实现模块:在HDFS接口下实现了文件系统中目录、文件等的增、删、改、查能力。

    分布式存储对象数据访问模块:对Hadoop文件系统操作实现模块中所涉及的操作转化为对Ceph集群中RADOS(包括OSD以及Moniter)集群的访问。具体的调用流程如图5所示:

    1)首先通过Hadoop Common包中的Configuration配置类读取core-site.xml配置文件内容,获取xml文件中fs.defaultFS配置项与fs.cephRgw.impl配置项的值,接着通过Java反射机制加载实现了Hadoop抽象文件接口FileSystem的具体实现类CephRg-wFileSystem。

    2)Hadoop的计算应用数据访问请求调用Hadoop文件系统兼容接口模块。上层的Yam资源管理器读取fs.AbstractFile-System.cephRgw.impl的值,找到Yarn的DelegateToFileSystem抽象类的具体实现类CephRgw,发送数据传递的请求。

    3)对于上层传递过来的1/0请求。Hadoop文件系统兼容接口模块将做判断对于符合要求的1/0请求传递给下层文件系统操作实现模块,否则返回相应的错误。

    4)文件系统操作实现模块先对要操作的文件或者文件夹加上读锁或者写锁,然后将Java请求通过JNA框架转换成对so动态链接库的C++请求,进行数据访问的操作。

    5)接下来进入到Ceph的具体实现中,文件系统操作实现模块通过调用Ceph的LIBRADOS以及LIBRGW接口,先与远程集群上的Mon节点进行通信,获取到整个集群的Crush Map,再在本地通过Crush计算模块计算出操作文件的具体位置,把对文件夹的操作转换成对Bucket的操作,对文件的操作转换成对Object的操作。此时还需要根据Crush算法计算出数据写入的具体OSD并返回给文件读写模块。

    6)最后文件读写模块跳过Mon节点,直接和集群的OSD建立通信,并将读写请求封装成Socket请求发送给具体Bucket或者Object所在的主OSD,由主OSD进行读写,读写完成后将结果信息返回给文件读写模块,文件读写模块再把结果向上层传递,最终完成整个1/0数据流的操作。

    从整个数据访问流程中可以看出,Hadoop的1/0数据流到Ceph层面的数据流读写,不需要和Mon节点建立长时间的连接。另外,Ceph集群搭建好之后,Crush Map短时间内不太会出现比较大的变动,比较稳定。直接和OSD进行数据传输,不存在文件系统的元数据瓶颈以及S3A网关的单点瓶颈问题。

    此外,Ceph分布式存储可以通过其他服务接口向云计算等其他平台提供存储服务,提供多种存储方式。

    4 实验与分析

    本章将建立实验环境,首先对Hadoop计算存储分离模块的功能进行验证,主要为HDFS的文件操作嘲。接着测试三种不同部署方案的性能,即Hadoop与HDFS分离部署方案、Ha-doop与S3A分离部署方案以及本文提出的基于Ceph对象存储的Hadoop分离存储方案。

    实验环境总共分为两部分,一部分是功能测试环境,另一部分是性能测试环境。

    4.1 功能测试

    功能测试实验环境有三部分:第一部分是Kubernetes集群,用来启动容器大数据集群;第二部分是OpenStack集群,用来启动虚拟机大数据集群;最后一部分是Ceph存储环境,用来存储容器集群与虚拟机集群的数据,并供大数据集群调用。

    如表1所示:Kubemetes集群有3臺服务器,以Kubernetesl为Master节点,以Kubernetes2和Kubemetes3为Node节点,提供容器编排服务;OpenStack集群共有19台服务器,以3台服务器为控制节点,以16台服务器为计算节点,使用Kolla自动化部署工具搭建了基于容器的OpenStack平台,提供虚拟机服务;Ceph集群共有10台大存储机器,其中Cephl-3为Mon节点,10台服务器上均部署OSD,对外提供Ceph对象存储服务。

    实验用到的软件及版本信息如表2所示:

    Hadoop提供了HDFS的Shell命令,可以直接操作Hadoop配置的文件系统。HDFS命令有多个,包括文件以及文件夹的创建、查看、移动、重命名、本地文件的上传与下载功能、文件复制、文件权限修改等等。

    Hadoop对文件系统的操作有很多,表3给出了使用Hadoop与Ceph存储对接器的大数据集群支持的命令。从表中可以看出,相比于使用HDFS分布式文件系统,使用对接器的Hadoop集群仅仅不能支持文件的追加。这是因为Ceph对象存储暂时还不支持文件的追加操作。

    从测试结果可以看出,Hadoop与Ceph对象存储对接器实现了从文件到对象转化的功能,提供了直接操作Ceph对象存储的Java接口。通过这些接口,HBase、Spark等大数据处理框架都能良好的运行。

    4.2 性能测试

    和功能性验证的实验环境相比,性能实验对硬件的要求要高,特别是大数据计算任务,要求Ceph中存储大量的数据。表

    4 列出了本次性能测试使用的硬件环境。

    为减少Hadoop计算任务所需时间,Hadoop集群使用十台大存储以及大内存的服务器搭建。Ceph集群使用十台大存储服务器部署。另外,为了与HDFS的情况做对比,在测试完Ceph相关的性能之后,又在Ceph集群所在的服务器重新搭建了HDFS分布式文件系统,Hadoop集群通过远程调用的方式进行测试。

    图6给出了性能测试的网络拓扑图,Hadoop集群和Ceph集群之间的交换机带宽在40Gb*3量级上,因此,网络不会成为Hadoop计算任务的瓶颈。

    表5给出了性能测试的相关命令。性能测试主要分成四个任务:100G文件Put(上传)、100G文件Get(下载)、TeraGen生成IT数据、TeraSort对IT数据进行排序。分别对以下三种情况做性能测试:使用HDFS作为底层的文件存储;以S3A的方式对接Ceph对象存储;使用本论文实现的Hadoop与Ceph存储对接器对接Ceph对象存储。

    图7为100G文件Put、100G文件Get、TeraGen生成IT数据、TeraSort对1T数据排序的结果对比图。从图中可以看出,CephRGW存储对接器与HDFS相比,100G文件Put、Get性能相差在10%以下,TeraGen、TeraSort性能在10%-20%之间,而S3A相比于HDFS,IOOG文件Put、Get性能相差30%-50%.TeraGen以及TeraSort性能相差一倍以上。实验结果表明CephRGW存储对接器相比较HDFS性能差距不大,较S3A有较大性能提升。

    5 结束语

    本文提出了一种基于Ceph的大数据分离存储方案,并对该方案的功能及性能进行了测试。经验证,该方案功能上已能达到要求,性能上也接近了原生的HDFS方案,可以应用于实际的生产部署。

    但方案仍有待完善之处,后续将从以下几个方面开展工作:

    第一,对于网络I/O的问题,可以在此计算与存储分离架构下进行缓存模块设计,进一步提升系统性能。

    第二,Ceph对象存储由于采用CRUSH算法,没有元数据服务器来存储相关的目录结构,故在做涉及rename命令操作的时候会影响到系统的性能,之后的工作可以重设rename机制,设计一个元数据管理模块来对rename的源文件与目标文件进行管理。

    第三,我们也对业界的商业存储方案进行了调研,发现华为的大数据分离存储方案能够较好地解决上述问题,后续将会对华为存储开展相关功能与性能测试。

    参考文献:

    [1]马一力,傅湘林,韩晓明,等,存储与计算的分离[J].计算机研究与发展,2005,42(3):520-530.

    [2]Bernstein P A,Reid C W,Das S,et al.Hyder—A Transac—tional Record Manager for Shared Flash[C]//Conference on Ci—dr.2011.

    [3]Aguilem M K,MerchantA,Shah M A,etal.Sinfonia:anew para—digm for building scalable distributed systems[J].ACM Transac—tions on Computer Systems,2009,27(3):5.

    [4]GhemawatS,GobioffH,Leung S T.The Goode file system[J].ACM SIGOPS 0perating Systems Review,2003,37(5):29—43.

    [5]李大江.HDFS糾删码机制的优化研究[D],哈尔滨:哈尔滨工业大学,2018.

    [6]0'DriscollA,DaugelaiteJ,Sleator R D.‘Big data,Hadoop andcloud computing in genomics[J].Joumal of Biomedical Infor—matics,2013,46(5):774—781.

    [7]Jain P,GoelA,Gupta S C.Monitoringchecklist for cephobjectstorage infrastmcture[J]. CompmerScienceandItsApplicatioⅡs,2015:456:61 1—623..

    [8]翟永东.Hadop分布式文件系统(HDFS)可靠性的研究与优化[D].武汉:华中科技大学,2011.

    【通联编辑:梁书】

    作者简介:吴金坛(1968-),男,天津人,高级工程师,学士,研究方向为金融支付;章超(1994-),男,湖北荆州人,硕士在读,研究方向:大数据与云计算;李树楠(1993-),男,安徽阜阳人,硕士,研究方向:大数据与云计算。

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2024/12/22 18:16:22