Hadoop与FTP、HTTP协议的文件存取性能对比试验

时间:2022-01-05 17:39:51

本次实验的目的是验证Hadoop分布式文件系统的存取性能与传统FTPHTTP协议下文件的存取耗时相比,哪中协议的耗时会更短?从而验证在实际应用中哪种协议更适合做为文件存储的实现方案。

1.实验环境准备:

a) 搭建Hadoop集群;

 

主机IP

节点类型

存储空间

描述

10.7.111.220

namenode

200G

主节点,维护命名空间等信息

10.7.111.221

datanode

200G

数据节点1,存放分布式数据文件

10.7.111.222

datanode

200G

数据节点2,存放分布式数据文件

10.7.111.223

datanode

200G

数据节点3,存放分布式数据文件

10.7.111.224

datanode

200G

数据节点4,存放分布式数据文件

1个主节点,4个数据节点,构成整个hadoop集群。

b) 准备一个1.5MB大小的文件;

使用一个word文档作为传输文件的样本,文件大小为1.5MB

c) 搭建Hadoop客户端开发环境;

hadoop1.1.2源码版上编译eclipse插件,并复制到eclipseplugins目录中,eclipse IDE的版本为3.8M1。配置Hadoop DFSlocation参数,指向10.7.111.220主节点服务器,并可在eclipse中浏览分布式文件系统目录。

d) 将10.7.111.220服务器上的vsftpd服务打开

e) 在10.7.111.220服务器上安装部署apache server,并打开HTTP服务;

1.实施步骤:

a) 编写测试代码,将本地样本文件复制到Hadoop分布式文件系统中;

b) 编写测试代码,从Hadoop分布式文件系统中将之前的样本文件取回到本地;

c) 编写测试代码,将本地样本文件上传到远程的FTP服务器上(将10.7.111.220作为FTP服务器);

d) 编写测试代码,将远程FTP服务器上的样本文件下载到本地(将10.7.111.220作为HTTP服务器);

e) 编写测试代码,将本地样本文件通过httpclient类库上传到HTTP服务器上;

f) 编写测试代码,将HTTP服务器上的文件下载到本地;

2.实验结果:

操作项目

总耗时(ms)

平均耗时(ms)

Hadoop DFS 复制文件(执行100)

18223

182

Hadoop DFS 取回文件(执行100)

18459

184

FTP上传文件(执行100)

24350

243

FTP下载文件(执行100)

19554

195

HTTP PUT文件(执行20)

131700

6585

HTTP GET文件(执行20)

156172

7808

3.结论:

通过上述表格可以明显的得出结论:在实际的应用程序开发中不推荐使用HTTP协议进行远程文件的存取(由于耗时太长,所以只进行了20次的执行),FTPHadoop DFS协议都表现出很好的远程文件存取性能,不过做为结构化或非结构化数据的存储方案,我更推荐使用Hadoop DFS,因为Hadoop有更强的水平扩展能力,能够保障平滑的存储空间升级。因此Hadoop DFS完全可以替换FTP成为各种应用程序之间的文件共享实现方案。

 

附件为测试的实现代码:点击下载