本节介绍如何在MongoDB上运行YCSB。
1.启动MongoDB
在mongodb的bin目录写执行./mongod -f /usr/local/mongodb-3.6/etc/mongo.conf
2.安装Java和Maven
转到http://www.oracle.com/technetwork/java/javase/downloads/index.html(JDK下载页面)
并获取网址将rpm下载到您的服务器。例如:
wget http://download.oracle.com/otn-pub/java/jdk/7u40-b43/jdk-7u40-linux-x64.rpm?AuthParam=11232426132 -o jdk-7u40-linux-x64.rpm
rpm -Uvh jdk-7u40-linux-x64.rpm
或者通过yum / apt-get安装
sudo yum install java-devel
从http://maven.apache.org/download.cgi下载MVN
wget http://ftp.heanet.ie/mirrors/www.apache.org/dist/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz
sudo tar xzf apache-maven-*-bin.tar.gz -C /usr/local
cd /usr/local
sudo ln -s apache-maven-* maven
sudo vi /etc/profile.d/maven.sh
将以下内容添加到 maven.sh
export M2_HOME=/usr/local/maven
export PATH=${M2_HOME}/bin:${PATH}
重新加载bash并测试mvn
bash
mvn -version
下载YCSB zip文件并编译:
curl -O --location https://github.com/brianfrankcooper/YCSB/releases/download/0.5.0/ycsb-0.5.0.tar.gz
tar xfvz ycsb-0.5.0.tar.gz
cd ycsb-0.5.0
现在你已经准备好运行了!首先,使用异步驱动程序来加载数据:
./bin/ycsb load mongodb-async -s -P workloads/workloada > outputLoad.txt
然后,运行工作负载:
./bin/ycsb run mongodb-async -s -P workloads/workloada > outputRun.txt
同样,要使用来自MongoDB Inc.的同步驱动程序,我们加载数据:
./bin/ycsb load mongodb -s -P workloads/workloada > outputLoad.txt
然后,运行工作负载:
./bin/ycsb run mongodb -s -P workloads/workloada > outputRun.txt
请参阅下一节以获取MongoDB的配置参数列表。
由于mongodb驱动默认为DEBUG日志级别,因此此模块中包含一个logback.xml文件,该文件将org.mongodb日志记录限制为WARN。你可以通过重写logback.xml并在你的ycsb命令中添加这个标志来定义它:
bin/ycsb run mongodb -jvm-args="-Dlogback.configurationFile=/path/to/logback.xml"
mongodb.url
mongodb://localhost:27017/ycsb?w=1
ycsb
mongodb.batchsize
1
。mongodb.upsert
true
使用更新,false
使用插入操作。false
。mongodb.writeConcern
w
和journal
提供的MongoDB URI选项mongodb.url
。errors_ignored
unacknowledged
acknowledged
journaled
replica_acknowledged
majority
acknowledged
。mongodb.readPreference
readPreference
由mongodb.url
。提供的MongoDB URI上的选项。primary
primary_preferred
secondary
secondary_preferred
nearest
primary
。mongodb.maxconnections
maxPoolSize
由mongodb.url
。提供的MongoDB URI上的选项。100
。mongodb.threadsAllowedToBlockForConnectionMultiplier
waitQueueMultiple
由mongodb.url
。提供的MongoDB URI上的选项。5
。例如:
./bin/ycsb load mongodb-async -s -P workloads/workloada -p mongodb.url=mongodb://localhost:27017/ycsb?w=0
使用MongoDB公司的同步驱动程序运行:
./bin/ycsb load mongodb -s -P workloads/workloada -p mongodb.url=mongodb://localhost:27017/ycsb?w=0