使用Hadoop分布式文件系统检索云存储中的文件

时间:2022-10-15 07:01:34

使用Hadoop分布式文件系统检索云存储中的文件

摘 要 云存储系统被认为是一个具有独立存储服务器的大型存储系统。云存储提供的服务是,可以通过网络和其他经过身份验证的用户存储用户数据,可以轻松访问数据,Hadoop分布式文件系统用于存储大文件,并以非常高的带宽将这些文件检索到用户应用程序,Hadoop将文件分割成大块,并将它们分布在集群中的节点之间。当我们从云中检索数据时,减少计算和通信开销是非常重要的。为了减少通信开销,当用户要求数据文件时,服务器只能根据关键字发送最新的文件。由于所有者不需要维护文件的副本,所以只需要检查可用的文件。在HDFS中,并行完成计算,从而大大减少了执行时间。在提出的用于检索top-n文件的系统中,我们使用Hadoop分布式文件系统,从而大大减少了搜索时间和通信开销。

【关键词】云存储 HDFS 集群 关键字搜索

1 引言

云计算可以将客户端的数据存储在远程存储介质中,并在任何时候可以由用户检索数据。通过存储在云中,数据拥有者可以免费在自己的系统中维护数据的副本。但是存储所有者数据的服务器不一定被信任,为了提供保护,数据在外包到云端之前被加密。由于频繁的数据共享,这种方法在云环境中很难实现,可搜索的重新加密系统已经实现。在这种方法中,索引存储在主服务器中,数据分布到许多服务器。因此,这个系统在云存储环境中很难应用。为了在云存储中提供安全的数据,服务器提供了安全的存储空间,被称为云存储服务。为了利用这种安全的存储设备,使用的基本技术是分布式文件系统。

1.1 GFS

Google使用这种分布式文件系统提供安全的云存储。GFS包含三个组件,即客户端,主服务器和块服务器。

客户:代表应用程序与主服务器和块服务器通信。

主服务器:维护和管理文件系统原数据,如访问控制信息,名称空间,文件和块之间的映射信息以及块位置信息。 这些信息存储在主服务器的存储器中。它们几乎控制所有的系统功能,如创建块拷贝,返回可用的未使用的存储空间以及调整份数。

块服务器:块服务器管理存储的数据单元,并按照客户端的要求提供输入/输出数据。通过使用校验来识别数据错误。如果客户端想要存储文件,则客户端将文件详细信息发送到主服务器,主服务器又提供块服务器的位置。此外,如果客户端想要读取,则主服务器向客户端提供其中存储数据的块服务器位置。客户端然后与组块服务器进行通信并获取原始消息。

1.2 HDFS

Hadoop分布式文件系统(HDFS)的基本功能是可靠地存储大量数据,并以高带宽将这些数据发送给用户应用程序。在一个大集群中,数以千计的服务器处理直接连接的存储,并执行用户应用程序任务。Hadoop使用Map Reduce方法启用分布式系统,并为非常大的数据块分析和转换提供了基础。Hadoop的一个重要功能是将数据和分析分成数以千计的主机,并且并行执行所有应用程序计算,并且靠近其数据。Hadoop集群通过仅包括商品服务器来平衡计算和存储容量。

HDFS分别保存文件系统元数据和应用程序数据。为了存储元数据,使用称为名称节点的专用服务器,而使用称为数据节点的其他服务器来存储应用程序数据。基于TCP协议,所有服务器都完全连接。文件信息在多个数据节点上重复,可靠性如GFS。

HDFS的组件简介如下:

1.2.1 名称节点

HDFS命名空间包括目录和文件的哟谓峁埂8梦募分为大块。许多数据节点都可以独立地复制每个文件块。NameNode维护块到数据节点和命名空间树的映射。一个名称节点可用于每个集群。另一方面,每个群集可以拥有数千个数据节点和数万个HDFS用户,因为每个数据节点可能同时执行多个应用程序任务。

1.2.2 数据节点

数据节点上块的每个副本由本地文件系统中的两个文件表示。当第一个文件存储数据时,第二个文件存储包含数据的校验和的块的元数据。数据文件大小将等于块的原始大小,因此不需要增强的存储来匹配块大小。

1.2.3 HDFS客户端

在HDFS客户机中,一个端用于由用户应用程序访问文件系统。要访问数据,它提供文件系统界面。HDFS有读取,写入和删除文件等功能,也可以创建和删除目录。用户应用程序不需要知道文件系统元数据,因为存储位于不同的服务器上,或者该块具有多个副本。

2 存在问题

加密的云数据外包服务包括以下数据,即数据所有者,用户和云服务器。数据所有者拥有他与其他用户共享的各种数据的集合。由于他无法维护和处理用户每个请求的文件,他更愿意将这些文件外包给云服务器。但是这里的优先事项是信息不应该泄漏给任何人,也不应该泄漏给云服务器。因此,根据用户的要求,只能发送top-n个相关文件。为了确保数据的机密性,所有者在将它们外包到云服务器之前对其进行加密。由于计算在前n个文件中的文件的排名需要很多时间,在用户的每个请求上,服务器不会计算任何特定关键字的文件的排名。因此,在托管之前,数据所有者将首先创建一个可搜索的索引,该索引将由该特定关键字的每个文件的关键字文件ID和相关性分数组成。

3 实验设置

实验是在具有2个群集,cluster1和cluster2的云堆栈的Linux2,6x内核中实现的。所有者将数据存储在2个集群服务器中。Hadoop的性能主要取决于配置良好的软件层和精心设计的硬件资源,可以有效利用其CPU,内存,硬盘驱动器和网络带宽。

4 安全分析

我们提出的系统满足以下要求:

搜索速度:由于我们使用HDFS和B-tree数据结构在索引中存储和搜索关键字,搜索速度大大提高。

保密性:由于文件被加密,索引中的关键字被映射,所以没有信息泄漏。

通信效率:仅为用户请求检索前n个文件。因此,通信开销降低。

计算效率:由于文件被分组到集群中,创建索引的时间和文件排序的时间也减少了。

5 结论

本文列举了检索top-n文件的问题和满足所需要求的有效解决方案。所提出的模型是使用Hadoop分布式文件系统实现和测试的。通过使用我们的系统,搜索速度和通信开销大大降低。

参考文献

[1]严文中.分层结构CDN的负载均衡[J]. Modern Business Trade Industry,2009.

[2]王娟,赵问道.CDN内容路丨ll的负载均衡及网络分刘算法的研究[J].江南大学学报(自然科}版),2008.

[3]张淼.CDN系统中基于层次策略的负载均衡算法的研究与性能仿真[D].沈阳:东北大学,2010.

[4]赵问道.基于网络拓扑的CDN内容路由技术研究.浙江大学学报,2004,Vol.38:414-419.

[5]严文中.CDN负载均衡和内容路由研究.杭州:浙江大学(硕士学位论文),2005.

作者单位

国防科学技术大学计算机学院 湖南省长沙市 410000

上一篇:通信企业设计协同信息化建设 下一篇:计量检测绩效考核与决策辅助系统