HDFS和FastDFS的上传、下载效率对比测试

原创
2017/01/04 10:15
阅读数 7.4K

测试环境

测试使用的FastDFS服务器,HDFS服务器均在vmware虚拟机中搭建,HDFS的服务器直接由FastDFS服务器克隆而来,所以除了一个安装了hadoop,一个安装了FastDFS,其他环境完全一致。

HDFS配置了集群环境,一主三从,但是只打开一台从节点服务器。

vmware的配置如下图:

测试主机(上述vmware、测试代码的运行环境)CPU、内存如下图:

编码层面,对HDFS和FastDFS客户端都做了一层封装以达到简化开发的目的,封装对性能的影响不大。

所有代码均在JDK1.6下编译和运行,使用JUNIT运行了测试代码,均在IDEA中完成测试。

HDFS和FastDFS均在部署完成后直接测试,未做任何优化。

当然最终的测试结果也仅供参考,毕竟不同的环境,优化手段对最终的结果影响还是很大的。

1、文件上传测试

25个小文件上传测试(最大文件30.2mb,最小文件13b)

HDFS测试如下:

测试结果:coast time : 13599ms

 

FastDFS下测试:

测试结果:coast time : 1949ms

 

318个图片上传测试(每个文件大小1mb左右)

HDFS下测试:

测试结果:coast time : 63460ms

 

FastDFS下测试:

测试结果:coast time : 9585ms

 

3个视频文件测试(每个大小700多mb)

HDFS下测试:

测试结果:coast time : 62092ms

 

 

FastDFS下测试:

测试结果:coast time : 58137ms

 

3个较大视频文件测试(每个2gb+,总共7.2gb)

HDFS下测试:

测试结果:coast time : 171743ms

 

FastDFS下测试:

测试结果:coast time : 131861ms

 

 

2、文件下载测试

25个小文件的下载测试

HDFS 下载25个小文件 coast time : 13008ms

FastDFS下载25个小文件 coast time : 1218ms

 

318个图片的下载测试

HDFS 下载318个图片 coast time : 24942ms

FastDFS 下载318个图片 coast time : 7051ms

 

3个视频文件下载测试(单个700mb)

HDFS下载视频coast time : 69266ms

FastDFS 下载视频 coast time : 36144ms

 

 

3个较大视频下载测试(单个2gb)

HDFS下测试:

测试结果:coast time : 192315ms

 

FastDFS下测试:

测试结果:coast time : 138215ms

3、文件删除测试

25个小文件删除测试

HDFS 删除25个小文件 coast time : 10517ms

FastDFS删除25个小文件 coast time : 62ms

 

318个图片删除测试

HDFS 删除318个图片 coast time : 12828ms

FastDFS 删除318个图片 coast time : 811ms

 

3个视频删除测试(单个700mb)

HDFS删除视频coast time : 10286ms

FastDFS 删除视频 coast time : 150ms

 

3个较大视频删除测试(单个2gb)

HDFS下测试:

测试结果:coast time : 10594ms

 

FastDFS下测试:

测试结果:coast time : 255ms

总结

测试结果总览

测试项                                        

HDFS                             

FastDFS                            

25个小文件上传

13599ms

1949ms

318个图片上传

63460ms

9585ms

3个700m视频上传

62092ms

58137ms

3个2g视频上传

171743ms

131861ms

25个小文件下载

13008ms

1218ms

318个图片下载

24942ms

7051ms

3个700m视频下载

69266ms

36144ms

3个2g视频下载

192315ms

138215ms

25个小文件删除

10517ms

62ms

318个图片删除

12828ms

811ms

3个700m视频删除

10286ms

150ms

3个2g视频删除

10594ms

255ms

单从测试结果来看,无论是在上传、下载还是删除上,HDFS对比FastDFS差距还是比较大的。在小文件的上传上,HDFS的318个小图片总计200多mb的上传耗时和3个700m视频总计2.2g的上传耗时居然是差不多的。

对测试结果的一些猜想和认识

1、 FastDFS客户端底层连接服务端使用的是Socket,本身速度就要快很多。

2、 HDFS在做删除测试时,明显较慢的地方是在创建到服务端的连接上,实际删除文件的速度很快。由于每次测试都需要先创建到服务端的连接,HDFS在这块消耗较大,在实际场景下,差距应该没有这么大。

3、 两者的适用场景确有不同,FastDFS更适合小文件的高效存取,而HDFS更适合超大文件上传后使用Mapreduce去做大数据处理。

4、 HDFS的部分从节点没有开启,不知道会不会影响文件的上传、下载效率。

5、 个人的机器配置有限,硬盘空间也有限,不知道在更大级别的文件上传下载效率上,HDFS对比FastDFS会有如何的结果。

展开阅读全文
打赏
3
0 收藏
分享
加载中
HDFS 处理大于1T的文件的,为文件的并行处理提供支持,HDFS 会把文件切分为 64M 的 block,集群机器越多越快。
06/02 16:31
回复
举报
更多评论
打赏
1 评论
0 收藏
3
分享
返回顶部
顶部