热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

利用ycsb测试cassandra性能

java、maven、ycsb的安装及配置见这篇博客:blog.csdn.neths794502825articledetails17309845本篇博客主要介绍cassandra的安装,以及利用ycsb对cassandra进行基本的测试在cassandra.apache.orgdownload上面下载了最新版本的

java 、maven、ycsb 的安装及配置见这篇博客: http://blog.csdn.net/hs794502825/article/details/17309845 本篇博客主要介绍 cassandra 的安装,以及利用 ycsb 对 cassandra 进行基本的测试 在 http://cassandra.apache.org/download/ 上面下载了最新版本的

java 、maven、ycsb 的安装及配置见这篇博客:
http://blog.csdn.net/hs794502825/article/details/17309845

本篇博客主要介绍 cassandra 的安装,以及利用 ycsb 对 cassandra 进行基本的测试
在 http://cassandra.apache.org/download/ 上面下载了最新版本的 apache-cassandra-2.0.3-bin.tar.gz 存放在 /home/hs/program目录下
cd /home/hs/program
tar -zxvf apache-cassandra-2.0.3-bin.tar.gz
然后为 cassandra 设置环境变量
sudo gedit /etc/profile
在文件的最后加入:
#set cassandra environment
export CASSANDRA_HOME=/home/hs/program/apache-cassandra-2.0.3
export PATH=$PATH:$CASSANDRA_HOME/bin:$CASSANDRA_HOME/lib
之后,我就直接以普通用户(hs)执行 cassandra -f
显示了很多错误,大多都是与此相关:
无法生成目录:/var/lib/cassandra/......以及/var/log/cassandra/......

var目录的权限如下:
drwxr-xr-x 13 root root 4096 2013-12-14 21:50
只有所有者root对其有写的权限

cassandra 需要生成数据和日志信息的目录,默认情况下就是
/var/lib/cassandra/ 和 /var/log/cassandra/

然后我就在 hs 用户下执行如下命令:
sudo mkdir /var/lib/cassandra
sudo mkdir /var/log/cassandra

chown -R hs:hs /var/lib/cassandra
chown -R hs:hs /var/log/cassandra

如此一来,hs 就具有写 /var/lib/cassandra/ 和 /var/log/cassandra/ 的权限

在终端1中运行cassandra:
cassandra -f
如果有 Listening for thrift clients... 则说明成功启动 cassandra

在终端2中运行cassandra-cli:
cassandra-cli
显示:
Connected to: "Test Cluster" on 127.0.0.1/9160
Welcome to Cassandra CLI version 2.0.3

The CLI is deprecated and will be removed in Cassandra 3.0.  Consider migrating to cqlsh.
CQL is fully backwards compatible with Thrift data; see http://www.datastax.com/dev/blog/thrift-to-cql3

根据提示我就终止了 cassandra-cli,转而去使用 cqlsh
hs@hs-virtual-machine:~$ cqlsh
Connected to Test Cluster at localhost:9160.
[cqlsh 4.1.0 | Cassandra 2.0.3 | CQL spec 3.1.1 | Thrift protocol 19.38.0]

接下来在创建 keyspace 的时候,出现了如下错误:
cqlsh> create keyspace with strategy_class = 'SimpleStrategy' and strategy_options:replication_factor = '1';
Bad Request: line 1:75 mismatched input ':' expecting '='
上面那一行创建 keyspace 的命令我是从 cqlsh 的官网上 copy 过来的,所以我不知道怎么解决,第一次接触 cqlsh

后来还是去使用 cassandra-cli(注意所有的命令都需要以;结束)
create keyspace usertable;
use usertable;
create column family data;

在终端3中运行ycsb:
./bin/ycsb load cassandra-10 -P workloads/workloada -p hosts=localhost -p columnfamily=data > ./my-results/load-cassandra-a

得到如下错误:
Loading workload...
Starting test.
InvalidRequestException(why:unconfigured columnfamily data)
	at org.apache.cassandra.thrift.Cassandra$batch_mutate_result.read(Cassandra.java:20833)
	at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
	at org.apache.cassandra.thrift.Cassandra$Client.recv_batch_mutate(Cassandra.java:964)
	at org.apache.cassandra.thrift.Cassandra$Client.batch_mutate(Cassandra.java:950)
	at com.yahoo.ycsb.db.CassandraClient10.insert(CassandraClient10.java:477)
	at com.yahoo.ycsb.DBWrapper.insert(DBWrapper.java:148)
	at com.yahoo.ycsb.workloads.CoreWorkload.doInsert(CoreWorkload.java:461)
	at com.yahoo.ycsb.ClientThread.run(Client.java:269)

目测是 column family 的创建有问题
所以我在终端2中删除掉该 column family,然后重建
drop column family data;
create column family data with column_type = 'Standard' and comparator = 'UTF8Type';

返回终端3重新运行ycsb:
./bin/ycsb load cassandra-10 -P workloads/workloada -p hosts=localhost -p columnfamily=data > ./my-results/load-cassandra-a

得到如下结果:
YCSB Client 0.1
Command line: -db com.yahoo.ycsb.db.CassandraClient10 -P workloads/workloada -p hosts=localhost -p columnfamily=data -load
[OVERALL], RunTime(ms), 2287.0
[OVERALL], Throughput(ops/sec), 437.25404459991256
[INSERT], Operations, 1000
[INSERT], AverageLatency(us), 1670.687
[INSERT], MinLatency(us), 476
[INSERT], MaxLatency(us), 280228
[INSERT], 95thPercentileLatency(ms), 3
[INSERT], 99thPercentileLatency(ms), 12
[INSERT], Return=0, 1000
......

执行:
./bin/ycsb run cassandra-10 -P workloads/workloada -p hosts=localhost -p columnfamily=data > ./my-results/run-cassandra-a

得到如下结果:
YCSB Client 0.1
Command line: -db com.yahoo.ycsb.db.CassandraClient10 -P workloads/workloada -p hosts=localhost -p columnfamily=data -t
[OVERALL], RunTime(ms), 5574.0
[OVERALL], Throughput(ops/sec), 179.4043774668102
[UPDATE], Operations, 475
[UPDATE], AverageLatency(us), 2095.0547368421053
[UPDATE], MinLatency(us), 327
[UPDATE], MaxLatency(us), 143093
[UPDATE], 95thPercentileLatency(ms), 9
[UPDATE], 99thPercentileLatency(ms), 33
[UPDATE], Return=0, 475
......
[READ], Operations, 525
[READ], AverageLatency(us), 5054.5085714285715
[READ], MinLatency(us), 492
[READ], MaxLatency(us), 674167
[READ], 95thPercentileLatency(ms), 11
[READ], 99thPercentileLatency(ms), 85
[READ], Return=0, 525

下一阶段需要熟悉对 cassandra 的操作,以及使用 cqlsh
推荐阅读
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文详细介绍了如何解决MyBatis中常见的BindingException错误,提供了多种排查和修复方法,确保Mapper接口与XML文件的正确配置。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 探讨了小型企业在构建安全网络和软件时所面临的挑战和机遇。本文介绍了如何通过合理的方法和工具,确保小型企业能够有效提升其软件的安全性,从而保护客户数据并增强市场竞争力。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
  • HBase运维工具全解析
    本文深入探讨了HBase常用的运维工具,详细介绍了每种工具的功能、使用场景及操作示例。对于HBase的开发人员和运维工程师来说,这些工具是日常管理和故障排查的重要手段。 ... [详细]
  • 在本周的白板演练中,Apache Flink 的 PMC 成员及数据工匠首席技术官 Stephan Ewen 深入探讨了如何利用保存点功能进行流处理中的数据重新处理、错误修复、系统升级和 A/B 测试。本文将详细解释保存点的工作原理及其应用场景。 ... [详细]
  • 本文详细介绍了 Java 中 org.apache.qpid.server.model.VirtualHost 类的 closeAsync() 方法,提供了具体的代码示例和应用场景。通过这些示例,读者可以更好地理解和使用该方法。 ... [详细]
  • 本文详细介绍了 Flink 和 YARN 的交互机制。YARN 是 Hadoop 生态系统中的资源管理组件,类似于 Spark on YARN 的配置方式。我们将基于官方文档,深入探讨如何在 YARN 上部署和运行 Flink 任务。 ... [详细]
  • 本文详细介绍如何通过修改配置文件来隐藏Apache、Nginx和PHP的版本号,从而增强网站的安全性。我们将提供具体的配置步骤,并解释这些设置的重要性。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • 本文详细介绍了Java中org.apache.logging.log4j.spi.AbstractLogger类的logIfEnabled()方法,包括其功能、参数说明及实际代码示例。通过这些示例,读者可以更好地掌握如何在项目中使用该方法进行日志记录。 ... [详细]
author-avatar
feng2502863897
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有