Hadoop参考设计的实现及性能:HBase应用性能测试方法

测试工具 YCSB 的安装

YCSB介绍:YCSB(Yahoo! Cloud Serving Benchmark)是Yahoo开源的一款通用的性能测试工具。可以用于测试多种 NoSQL 产品进行测试。相关说明可以参考 https://github.com/brianfrankcooper/YCSB/wiki.

YCSB的工作原理如上图所示,主要的模块包括workload和DB Interface:

Workload:通过配置文件,定义读写比例,数据的大小等DB Interface:通过接口连接并操作各种Cloud Serving Store,也就是各种NoSQL产品包括HBase在内。在运行YCSB的时候,可以配置不同的workload和DB interface,同时可以定义线程数等其他参数。

安装方式一:直接下载已经编译过的程序包

下载地址:https://github.com/downloads/brianfrankcooper/YCSB/ycsb-0.1.4.tar.gz

解压:tar xfvz ycsb-0.1.4

这种方式简单易用。但对于不同的HBase版本,可能会有问题。需要手工编译安装。

安装方式二:源码编译安装

从github下载源码:git clone https://github.com/brianfrankcooper/YCSB.git

配置相应的HBase的版本:修改YCSB/pom.xml,更新hbase.version这个属性。

编译:cd YCSB, mvn install

生成YCSB的程序包:distribution/target/ ycsb-0.1.4.tar.gz

解压:tar xfvz ycsb-0.1.4

1. 测试步骤

a) 配置HBase连接和classpath

最简单的办法是将HBase Server的配置文件{$HBase_home}/conf/hbase-site.xml直接拷贝到YCSB的目录{$YCSB_HOME}/hbase-binding/conf。

将HBase的jar文件拷贝到{$YCSB_HOME} /hbase-binding/lib,这样当执行ycsb命令时,可以保证所需的jar在classpath上。

b) YCSB命令简介

直接执行ycsb命令,可以看到用法的介绍,主要有3类的参数:

Commands:执行什么命令,load-加载数据,run-运行测试,shell-交互模式;

Databases:使用什么DB Interface;

Options:包括属性参数和线程参数。

https://github.com/brianfrankcooper/YCSB/wiki/Core-Properties

参考以上的链接,可以发现workload的核心属性参数。

c) 加载数据

bin/ycsb load hbase -P workloads/workloada -p columnfamily=f1 -p recordcount=10000 -s -threads 10

向HBase Server下的usertable,f1插入10000条数据,并将执行的情况打印到屏幕上。对于HBase数据库,数据是以字节码数组byte[]的方式进行读取,对于不同的数据源,无论是车牌号这种String类型的,还是电子图片这种Binary类型的,在从HBase数据库读取的时候都是以byte[]类型,不同的是数组的长度。

对于一个“京K12345”的车牌,它的长度是8位,对于一个5M左右的图片,它的长度是2326122。我们可以通过workload的核心属性fieldlength来设置。

d) 性能测试

YCSB自带有6中workload配置文件,模拟不同的压力场景

以上是workloadc的内容,模拟的是100% read操作的场景。

bin/ycsb run hbase -P workloads/workloadc -p columnfamily=f1 -s -threads 10

根据workloadc来进行性能测试。

2. 对工具的定制开发和扩展

以上的介绍都是基于YCSB的自带功能。在有些情况下,我们需要扩展和定制测试的方法,YCSB是开源的纯JAVA的解决方案,可以充分满足特殊的要求。下面分析一下YCSB的相关JAVA Class。

a) Workload的定义: com.yahoo.ycsb.workloads.CoreWorkload

b) HBase DB Interface的定义:com.yahoo.ycsb.db.HBaseClient

c) 数据生成器Generator:com.yahoo.ycsb.generator.*

d) YCSB的主程序:com.yahoo.ycsb.Clien

压力测试参数与说明

测试分成两部分,小数据表和大数据表。所谓的大小表示单条记录的大小,测试中,小数据表的单条记录大小为8Byte,大数据表的单条记录大小为2MB。通过YCSB数据库测试工具,我们对数据库的各种操作进行了压力测试,包括read, insert, update, scan以及read-modify-write。这些测试反映了hadoop hbase的性能,同时也对实际应用的操作

进行了模拟。

操作说明:

Read: 读取某一条记录。速度和系统的io速率有关,系统读取速率越快,read速率越快。

Insert:插入一条记录。速度和系统的io速率有关,系统写入速率越快,read速率越快。

Update:更新一条记录,本质和insert操作相同。

Scan:扫描整个表,速率由读取速率和整个表的大小有关,表越大,单次scan速率越慢。

测试环境:

硬件:

软件:

*注:除非文中特别标注, 其他参数均采用 Apache Hadoop 英特尔分发版 2.3 的缺省参数。

YCSB对Apache Hadoop*英特尔分发版测试结果

在以下测试中,我们通过设置不同的线程数,让YCSB客户端模拟不同的压力情况。

时间: 2024-11-05 16:22:47

Hadoop参考设计的实现及性能:HBase应用性能测试方法的相关文章

Hadoop参考设计的实现及性能:英业达和技嘉的实现

英业达的561.html">参考设计实现 Name Node/Second Name Node 规格: DataNode/http://www.aliyun.com/zixun/aggregation/17034.html">TaskTracker 规格: 机柜规格: 技嘉的参考设计实现 Name Node/Second Name Node 规格(共两台服务器): DataNode/TaskTracker 规格: 机柜规格: 交换机:

Hadoop参考设计的实现及性能:Intel平台产品参考

全球范围内的IT机构正在通过数据中心虚拟化来降低成本,进而获得更高的业务价值,同时借助自动化能力来提高服务级别.效率和灵活性.基于英特尔® 至强® 处理器的服务器为实现此创新奠定了基础.这些服务器在当前虚拟化中心和云环境中的所有服务器中占绝大部分的比例,而且能够为大多数具备最高性能的工作站提供支持. 最新的英特尔® 至强® 处理器 E5-1600/2600 产品家族将这些优势提升至新的高度,其性能比上一代产品提升多至80%,而且具备更出色的能源效率.最重要的是,这些处理器还提供了许多高级技术,以

Hadoop参考设计的实现及性能:HiBench性能测试

该工具在业界引起巨大反响.总结该成果的发表论文The HiBench benchmark suite: Characterization of the MapReduce-based data analysis[]被广泛引用,仅国际权威学术期刊http://www.aliyun.com/zixun/aggregation/14477.html">IEEE上发表的引用它的论文就有7篇之多.Intel已将该工具的源代码提交给Apache,社区反映相当热烈. IEEE论文链接 http://ie

Hadoop参考设计的实现及性能:Hadoop性能初步测试

Name Node/Second Name Node 规格(共两台服务器): DataNode/http://www.aliyun.com/zixun/aggregation/17034.html">TaskTracker 规格: 机柜规格: Hadoop 性能初步测试 基于上述所建立的Hadoop集群,使用标准测试组件进行方案验证,并使用Hadoop性能标杆套件HiBench进行性能测试. nnbench 测试目的:对NameNode的硬件及配置进行负载测试. 参数设置: maps =

Hadoop参考设计的实现及性能:第三方产品介绍

英业达服务器产品 K800(Romley-EP)是一款基于Romley-EP平台的标准2U服务器,高http://www.aliyun.com/zixun/aggregation/17968.html">内存容量,高网络速度,多样化的SATA扩展配置,支持板载的双千兆+双万兆可选配置,满足客户多样化的需求. 最高可支持16个内存条,容量高达512GB,轻松满足客户高内存容量的需求 主板多样化选择,可支持板载单万兆,板载双万兆,板载双千兆,板载双千兆+双万兆等多款差异化配置,可满足客户的各种

Hadoop一体机参考设计的方案设计原则

Hadoop是一种高度可伸缩的大数据应用方案,能过通过少至几台多至数千台互联的服务器处理几十TB到数百PB的数据.本参考设计实现了单一机柜的Hadoop集群设计,若用户需要多于一个机柜的Hadoop集群,可以通过扩张本设计中的服务器数量及网络带宽轻松实现扩张. Hadoop方案 Hadoop一体机设计 Hadoop方案的特点 Hadoop是一个低成本和高可扩展性的大数据处理平台.Hadoop提供了一个稳定的共享存储和分析系统,存储由HDFS(分布式数据存储)来实现,数据处理由MapReduce(

Hadoop一体机参考设计的实现案例:网新易得Radoop统一计算平台

在目前的信息化社会,越来越多的非结构化和http://www.aliyun.com/zixun/aggregation/13667.html">半结构化数据出现,导致数据量已有原来的TB级别增加到了PB级别.原先单一的关系型数据库也相较原先出现了性能方面的瓶颈.为了应对以上的挑战您需要一种解决方案,它既可以满足高性价比和高可靠性的大容量存储的需求又能利用分布式计算框架和数据库的来解决原有关系型数据库的瓶颈,那网新易得的Radoop解决方案就是您最好的选择! 高价值: 网新易得Radoop设

Hadoop参考设计组组件及关键步骤(一)

关于Hadoop参考设计组组件及关键步骤的文章内容比较多,所以小编将Hadoop参考设计组组件及关键步骤分成三节内容向大家进行详细的介绍. 软件 操作系统:Hadoop支持任何可以运行Java环境的操作系统.在实际应用中,一般客户多会选择不同Linux发布版的64位版本.在本参考设计中我们选择了免费的企业级Linux CentOS6.3 x64版. Hadoop系统:Hadoop是基于Apache授权协议的开源软件,客户能够在免费的开源版本及商业支持版之间选择.免费的开源版本目前尚存在大量软件B

Hadoop学习笔记(四):HBase

HBase是在一个HDFS上开发的面向列的分布式数据库.HBase不是关系型数据库,不支持SQL. HTable一些基本概念 Row key 行主键, HBase不支持条件查询和Order by等查询,读取记录只能按Row key(及其range)或全表扫描,因此Row key需要根据业务来设计以利用其存储排序特性(Table按Row key字典序排序如1,10,100,11,2)提高性能. Column Family(列族) 在表创建时声明,每个Column Family为一个存储单元.在上例