• YCSB 对HBase 性能测试


        我认真的在想,关在牢里面的人,不一定比放在外面的人坏。 -- 三毛

        这篇文章放草稿箱快两个多月了,今天突然被告知,要换方向,看了近三个月的HBase就这样别了,很突然。

      刚开始装上HBase系统,再还没什么应用的情况下,就不知拿着它干嘛,好吧,测试一下。

        HBase的版本是:0.90.5 Hadoop的版本是:1.0.0,分布式部署,一共四个节点。

      测试工具是:YCSB,yahoo cloud system benchmark。专用于对各种分布式数据库测试的工具。可以在这个网站上下载:https://github.com/brianfrankcooper/YCSB, 个人理解,YCSB更多的是用来测试不同分布式数据库的,如cassandra,hypertable,HBase,考察不同数据库的相关性能。

          下载测试工具之后,我使用的版本是:ycsb-0.1.4

    1 tar xfvz ycsb-0.1.4
    2 cd ycsb-0.1.4

          开始配置测试环境
          将hbase中的jar包拷贝到hbase-binding/lib文件夹下,将hbase中的/conf/hbase-site.xml拷贝到/hbase-binding/conf下。在hbase中创建指定的表:usertable。测试默认的是要操作这样的一张表,需要这样的列族,不一定是三个。

    1 create 'usertable','f1','f2','f3'

          测试过程分为两个阶段,首先是加载数据,其次是执行事务。
          加载数据,进入ycsb的bin目录,开始输入命令:

    1 ./ycsb load hbase -P ../workloads/workloada -p threads=10 -p columnfamily=f1 -p recordcount=10000 -s > load.dat

        命令分析:load:表明为加载数据测试。
        -P:指定配置文件
         workloads/workloada: 为配置文件。This workload has a mix of 50/50 reads and writes
         -p:参数
         threads:the number of client threads

         加载完数据后,显示的部分结果如下:

    1 [OVERALL], RunTime(ms), 2295.0
    2  [OVERALL], Throughput(ops/sec), 4357.298474945534
    3  [INSERT], Operations, 10000
    4  [INSERT], AverageLatency(us), 198.2618
    5  [INSERT], MinLatency(us), 9
    6  [INSERT], MaxLatency(us), 788883
    7  [INSERT], 95thPercentileLatency(ms), 0
    8  [INSERT], 99thPercentileLatency(ms), 0
    9  [INSERT], Return=0, 10000

        加载完数据之后,开始执行事物,主要有read 和 update操作。执行命令如下:

     ./ycsb run hbase -P ../workloads/workloada -threads 10 -p measurementtype=timeseries -p 
    columnfamily=f1 -p timeseries.granularity=2000 > transactions.dat

        命令的具体含义跟上条大体一致,可以自己参考网站的文档,合理的配置。
        命令执行完,显示的部分结果:

     1 [OVERALL], RunTime(ms), 541.0
     2  [OVERALL], Throughput(ops/sec), 1848.4288354898335
     3  [UPDATE], Operations, 502
     4  [UPDATE], AverageLatency(us), 4569.788844621514
     5  [UPDATE], MinLatency(us), 56
     6  [UPDATE], MaxLatency(us), 373970
     7  [UPDATE], Return=0, 502
     8  [UPDATE], 0, 4569.788844621514
     9  [READ], Operations, 498
    10  [READ], AverageLatency(us), 4618.516064257028
    11  [READ], MinLatency(us), 742
    12  [READ], MaxLatency(us), 379287
    13  [READ], Return=0, 498
    14  [READ], 0, 4618.516064257028 

        这样,大概的一个测试过程就完成了,这只是简单的按照ycsb的文档使用了下ycsb工具,我觉的最关键的是从使用ycsb测试之后,得到的数据中进行合理的分析,去了解HBase这个系统。

  • 相关阅读:
    Git 数据是怎么存储的
    技术管理规划-路径跟资源
    技术管理规划-如何规划团队的架构
    技术管理规划-如何设定团队的目标
    技术管理规划-设定团队的职能
    springboot实践1
    spring的事件机制实战
    Apollo的基本概念和集成实战
    spring的事件
    ELK的简单安装使用
  • 原文地址:https://www.cnblogs.com/liuan/p/2409957.html
Copyright © 2020-2023  润新知