Hbase和Hadoop操作文件性能测试

开发 项目管理 Hadoop
Hbase和Hadoop相信大家应该听说过,那么你知道Hbase和Hadoop操作文件的性能吗,这里就向大家介绍一下如何测试Hbase和Hadoop操作文件的性能,欢迎大家一起来学习。

本节向大家介绍一下测试Hbase和Hadoop操作文件的性能的方法,主要有六个方面的内容,希望通过本节简单的介绍大家能够掌握测试Hbase和Hadoop操作文件的性能的方法,下面就让我们一起来学习吧。

测试Hbase和Hadoop操作文件的性能

1:单线程hbase的文件存入

StringparentPath="F:/pic/2003-zhujiajian";
File[]files=getAllFilePath(parentPath);
HBaseConfigurationconfig=newHBaseConfiguration();
HTabletable=newHTable(config,newText("offer"));
longstart=System.currentTimeMillis();
for(Filefile:files){
if(file.isFile()){
byte[]data=getData(file);
createRecore(table,file.getName(),"image_big",data);
}
}
longend=System.currentTimeMillis();
System.out.println("timecost="+(end-start));
108037206bytes,303个fileswritefromlocalwindowstoremotehbase,cost23328or21001milliseconds

2:单线程hadoop的文件存入

Configurationconf=newConfiguration();
FileSystemfs=FileSystem.get(conf);
Pathsrc=newPath("F:/pic/2003-zhujiajian");
Pathdst=newPath("/user/zxf/image");
longstart=System.currentTimeMillis();
fs.copyFromLocalFile(src,dst);
longend=System.currentTimeMillis();
System.out.println("timecost="+(end-start));
108037206bytes,303fileswritefromlocalwindowstoremotehdfs,cost26531or32407milliseconds

3:单线程hbase的文件读取

108037206bytes,303filesreadfromhdfstolocalcost479350milliseconds

4:单线程hadoop的文件读取

108037206bytes,303filesreadfromhdfstolocalcost14188milliseconds

5:深入测试Hbase和Hadoop操作文件性能

取几个文件对比
fileSize(byte)hdfstime(ms)hbasetime(ms)
12341140131314688
708474634359
82535153907
5529616125

6思考

测试Hbase和Hadoop操作文件性能期间发生了一个regionoffline的错误,重启服务也还是报错,后然重新formatnamenode,deletedatanode上数据,重启发现还有datanode没有起来,ssh上去发现java进程死了
浪费了1个多小时,仔细想了一下HTable分散到各个HRegionServer上的各子表,一台datanode挂了,当有数据请求时,连不上,所以报regionoffline错误

为什么hbase读取的performance那么差?我单个读取11m的文件需要14000milliseconds,而hdfs真个文件目录的读取才14188milliseconds
DBMSorHBase-butdousallafavorandjustkeepthepathinthemetadata,看来,hbase不合适存放二进制文件,存放图片这样的application还是hdfs更合适了。

a:重新测试了几遍,包括重启hbase,hdfs,hbase的读取速度还是和原先没大差别

b:删除原有数据,重新写入后,再测试读发现,小文件的读取效率搞了很多
fileSize(byte)1(ms)2(ms)3(ms)
12341140117501110911718
708474625610672
82535787878
55296476247

这样就是说读cache有较大的性能提升,在data数量不是非常大的时候,瓶颈是在读取速度上,100k一下的数据读取效率还是可以的,花费时间基本上和要读取的data的长度成正比
但是之前的效率为什么没有变?难道不能cache从磁盘读取的数据?
然后试着读取了最先放入的一批文件中的几个,现在还是很慢,重复b的操作后效率提升了。原因可能是系统在创建row'sclunmdata的时候打上了cache标志,cache适合clunm系统绑定在一起的,hbase启动的时候会把打了cache标志的colunm数据读到memory中.
所以在我执行altertableofferchangeimage_bigIN_MEMORY之前所创建的数据都没有cache标志,此cache不是像其他的cache,启动的时候不做load,访问后再cache,这样一来,cache的数据愈多必然造成启动速度的加慢。本节关于测试Hbase和Hadoop操作文件的性能介绍完毕,请关注本节其他相关报道。
 

【编辑推荐】

  1. Hdoop/Hbase文件配置方法详解
  2. HadoopHBase实现配置简单的单机环境
  3. Hadoop集群与Hadoop性能优化
  4. Hadoop 从Yahoo向Google的技术转折
  5. 深入剖析Hadoop HBase

 

 

责任编辑:佚名 来源: csdn.net
相关推荐

2009-12-16 11:04:51

Ruby操作文件权限

2010-06-04 11:00:27

hadoop性能优化

2021-04-05 17:22:13

Lua文件数据编程语言

2011-12-29 09:03:14

VIM

2020-11-19 10:30:28

Linux

2011-08-29 10:15:13

FacebookHadoopHBase

2009-08-19 17:44:15

C#操作文本文件

2009-10-29 17:15:26

VB.NET控件

2009-08-20 09:15:20

C#操作文本文件

2010-06-03 13:08:51

2010-03-18 17:43:46

python 编程语言

2023-02-06 09:34:00

JavaHutool操作文件

2009-08-20 10:17:27

C#操作文本文件

2010-01-11 17:05:32

VB.NET操作文本文

2009-08-20 09:58:06

C#操作文本文件

2011-08-01 09:39:43

2011-07-20 14:29:33

HBase

2017-01-17 09:38:52

ZooKeeperHadoopHBase

2010-03-23 15:52:43

Python操作文件

2010-05-24 14:59:29

Hadoop集群
点赞
收藏

51CTO技术栈公众号