APP下载

基于HDFS的云盘系统设计与实现

2018-03-04汤海林

电脑知识与技术 2018年36期
关键词:存储技术数据

汤海林

摘要:数据存储是互联网数据的信息化应用的基础,HDFS具有对文件操作的分布式、大数据量和快速的特点。文中对基于HDFS的云盘系统的功能模块、功能设计与功能实现作了详细的分析,对各功能模块的设计给出了具体的设计方法和实现程序。经测试,系统能实现对数据快速存取的功能。

关键词:HDFS;存储技术;数据;文件系统

中图分类号:TP302.1       文献标识码:A        文章编号:1009-3044(2018)36-0072-02

Abstract: Data storage is the basis of information application of Internet data. HDFS has the characteristics of distributed, large data volume and fast for file operation. In this paper, it analyses the function modules, function design and function realization of cloud disk system Based on HDFS in detail. It also gives the design methods and implementation procedures of each function module. After testing, the system can achieve the function of fast access of data.

Key words:HDFS; Storage Technology; Data; File System

信息化技术应用是数据信息化发展的必然趋势,互联网应用、企业信息管理都是大量数据共享的成果,随着企业应用对数据的依赖性增加,数据的存储需求越来越重要,基于网络的分布式数据存储模式应用越来越多,利用HDFS的大数据文件的分布式管理功能,设计云盘系统实现用户对数据实时性、共享性的应用。

1 系统基本功能模块设计

HDFS是一个高度容错性的系统,它是运行在通用硬件上的分布式文件系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的數据访问,采用“一次写入、多次读取”模式[1],可实现流式读取文件系统数据,适合大规模数据集上的应用。

云盘系统通过互联网为企业和个人提供信息的存储、读取、下载等服务,具备安全稳定、海量数据存储的特点。系统可提供云存储服务、离线下载、文件智能分类浏览等功能,提供用户对在线数据操作的应用需求。

云盘系统数据包括用户数据和文件数据。用户数据主要包括用户身份信息、安全信息等,可利用HDFS文件系统存储,此文件是所有用户的共享文件。文件数据是用户上传到HDFS中的文件,该文件是用户独享数据,其他用户需授权访问[2]。云盘系统的基本功能结构如图1所示。

系统设计中为每个用户创建专属目录,用于用户存储个人文件数据。

2 用户管理功能

用户管理功能包括用户信息的注册、存储、查询、修改等功能,用户信息数据存储到文件user.dat中,系统利用FileSystem.append()方法实现对文件user.dat的读取操作,利用FileSystem.mkdirs()方法实现对用户目录的操作[3]。用户管理操作通过User类封装,用户表中的ID字段作为关键词,通过FSDataInputStream.readLine()方法实现对用户信息的遍历。User类的用户注册功能实现部分代码如下:

public User(String username, String password){

this.id=””;

this.username=username;

this.password=password;  }

public boolean register() throws IOException{   //用户注册并创新目录

int id=Integer.parseInt(lastUserid)+1;

this.id=String.valueOf(id);

FileSystem fs=FileSystem.get(conf);

Path src=new Path(“/clouddisk/user.dat”);

FSDataOutputStream dos=fs.append(src);  }

用户注册信息成功,登录时通过执行FSDataInputStream.readLine()方法,对user.dat中的用户信息进行身份验证。

3 文件管理功能

3.1 文件上传

文件上传功能是云盘系统的基本功能,实现用户对本地数据与系统之间的数据传输。用户发起文件上传请求,与NameNode建立连接,获取DataNode信息。NameNode收到请求后获取DataNode信息,并将可存储文件的节点信息返回给用户。用户收到NameNode返回的信息,与对应的DataNode节点取得联系,并向该节点写文件。文件上传功能通过FileSystem.copyFormLocalFile()方法将本地数据上传到用户专属目录中,UserFile类的文件上传功能部分实现代码如下:

public class UserFile{

FileSystem fs=FileSystem.get(conf);

Path src=new Path(path);

Path dst=new Path(“/clouddisk/”+user.id);

Try{

fs.copyFormLocalFile(src,dst);

isSuccessed=true;

}catch(IOException ex)

fs.close;

return isSuccessed;  }

3.2 文件查询

文件查询功能是用户对系统存储的用户专属数据的查询,用户登录可在文件目录中查看专属文件列表,利用FileSystem.listStatus()方法可获取用户专属数据的状态[4]。通过系统查询功能设置查询文件名,利用seacherFiles()方法实现对文件的查询,查询功能实现封装在UserFile类中,部分功能实现的代码如下:

public String[] seachFilse(String userid, String filter) throws IOExcepiton{

String files[]=null;

Configuration conf=new Configuration();

FileSystem fs=FileSystem.get(conf);

Path dst=new Path(“/clouddisk/”+userid+”/”+filter);

FileStatus status[]=fs.fileStatus(dst);  //查詢匹配

Files=new String[status.length];

for(int i=0;i<status.length;i++){

files[i]=status[i].getPath().getName();  }

fs.close();

return files;  }

3.3 文件删除和下载功能

文件删除是用户在系统中对专属数据的删除功能,用户可在用户列表中选择删除文件,也可利用查询功能对指定文件的删除操作。文件删除功能利用FileSystem.delete()方法实现。

文件下载是用户对上传到系统中的专属文件下载到本地文件的操作,下载功能利用FileSystem.copyToLocalFile()方法实现。文件删除和下载的功能均封装在UserFile类中。

4 结束语

云盘系统设计实现了对用户、文件的管理功能,经测试各功能正常运行,实现了用户对基本数据的云存储的应用需求。利用HDFS实现的云盘系统具备操作简便、存储容量大、速度快的特点,利用Hadoop的多访问API接口和HDFS分布式文件处理的功能,可实现快速的互联网数据存取功能,但系统未对视频、音频数据的在线播放功能实现,在后续的系统功能扩展上可增加相应的功能。

参考文献:

[1] 马炳先,相东明,张正明.Web 服务组合的Petri网自动生成方法[J].小型微型计算机系统, 2013,34(2):332-337.

[2] 刘志中,雷冠军,薛霄,等.QoS感知的云服务优化组合研究[J].计算机应用研究2012,29(10):3919-3921.

[3] 陈岩松.机票票价预测系统设计与实现[D].大连:大连理工大学,2013.

[4] 翟岩龙.开放网络环境中动态自适应服务组合技术研究[D].北京:北京理工大学,2009.

[通联编辑:王力]

猜你喜欢

存储技术数据
关于计算机网络存储技术分析
基于FAT文件系统的数据存储技术的研究
网络存储技术在档案管理中的应用探微
数据存储技术的应用
浅谈计量自动化系统实现预购电管理应用
基于FPGA的并行测试高速存储技术
基于双活容灾存储技术的云计算数据中心的设计及应用