@gekeshi
2016-04-30T14:58:27.000000Z
字数 1391
阅读 637
ycsb hbase resias
YCSB
YCSB的全称是Yahoo! Cloud Serving Benchmark,这是一个用于测试cloud serving/NoSQL/Key-Value Store的benchmark。随着cloud serving的流行,传统数据库不能满足Avalability、Scalabilty等要求,简化了功能(表连接等)、一致性(事务处理)的NoSQL数据库开始流行。这类数据库数量很多,各有tradeoff(read and write,latency and durability,sync and async等),开发人员和用户很难根据应用的特点选择合适的解决方案。YCSB的目的是提供一个公平的舞台。
YCSB自带了6种负载(workloads/目录下),其中五种如下表。用户可以自定义操作(read、update、insert和scan)的比例,以及选择操作目标记录的分布:Uniform(等概率随机选择记录)、Zipfian(随机选择记录,存在热纪录)和Latest(近期写入的记录是热记录)。
使用bin/ycsb就可以运行YCSB,命令的格式是:
bin/ycsb [load|run] dbname –P path/to/workloadfile –p key=value
用户首先需要用load初始化数据库,然后用run运行负载。dbname指定了目标数据库。-P指定负载文件的位置。-p用来设置一些参数,比如数据库的ip和port。当然,在运行YCSB之前,目标数据库必须是开启的。测试完成后,YCSB会打印平均/最小/最大延迟等信息。
- Redias
Redis是一个key-value存储系统。和Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的value类型,除了和string外,还支持lists(链表)、sets(集合)和zsets(有序集合)几种数据类型。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
redis的安装非常简单,已经有现成的Makefile文件,直接运行make命令即可。redis自带了服务器和客户端,使用src/redis-server可以运行服务器。

- Hbase
部署伪分布式Hbase,首先需要正确配置hdfs,参考前文hadoop伪分布式部署。这里要强调的是,Hbase对Hadoop和java版本要求较高,针对Hbase1.12,这里强烈推荐使用hadoop-2.5.x以及JDK7,其他版本很可能出错。
需要配置的文件有conf/hbase-site.xml和conf/hbase-env.sh。在hbase-env.sh配置JDK。hbase-site.xml配置如图,其中,伪分布式下hbase.cluster.distributed配置为false,zookeeper需要用IP地址配置。

start-hbase.sh启动HBase

启动两个终端,一个运行Redias服务器,另一个运行YCSB测试。load、run workloada-f,示例如图:


首先启动hdfs,再启动Hbas,加载workloada,出下如下错误:
