Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 在ycsb中的负载生成阶段之后,如何验证数据是否加载到mongodb中?_Performance_Mongodb_Benchmarking_Ycsb - Fatal编程技术网

Performance 在ycsb中的负载生成阶段之后,如何验证数据是否加载到mongodb中?

Performance 在ycsb中的负载生成阶段之后,如何验证数据是否加载到mongodb中?,performance,mongodb,benchmarking,ycsb,Performance,Mongodb,Benchmarking,Ycsb,我正在尝试使用ycsb对mongodb进行基准测试 我已按照上指定的说明下载并安装了mongo db 之后,我使用以下命令在mongodb中创建了ycsb命名数据库 1. use ycsb 2. db.createCollection("ycsb") 正如上面链接中指定的,我运行下面的命令将数据加载到ycsb数据库中 ./bin/ycsb load mongodb -s -P workloads/workloada -p mongodb.url=mongodb://127.0.0.1:270

我正在尝试使用ycsb对mongodb进行基准测试

我已按照上指定的说明下载并安装了mongo db

之后,我使用以下命令在mongodb中创建了ycsb命名数据库

1. use ycsb 
2. db.createCollection("ycsb")
正如上面链接中指定的,我运行下面的命令将数据加载到ycsb数据库中

./bin/ycsb load mongodb -s -P workloads/workloada -p mongodb.url=mongodb://127.0.0.1:27017 -p mongodb.database=ycsb
我只是想检查加载阶段的执行情况,所以我没有指定其他参数。我在屏幕上看到下面的日志

root@pegdb2:~/ycsb-0.1.4# ./bin/ycsb load mongodb -s -P workloads/workloada -p mongodb.url=mongodb://127.0.0.1:27017 -p mongodb.database=ycsb
java -cp /root/ycsb-0.1.4/gemfire-binding/conf:/root/ycsb-0.1.4/infinispan-binding/conf:/root/ycsb-0.1.4/nosqldb-binding/conf:/root/ycsb-0.1.4/core/lib/core-0.1.4.jar:/root/ycsb-0.1.4/hbase-binding/conf:/root/ycsb-0.1.4/mongodb-binding/lib/mongodb-binding-0.1.4.jar:/root/ycsb-0.1.4/voldemort-binding/conf:/root/ycsb-0.1.4/jdbc-binding/conf com.yahoo.ycsb.Client -db com.yahoo.ycsb.db.MongoDbClient -s -P workloads/workloada -p mongodb.url=mongodb://127.0.0.1:27017 -p mongodb.database=ycsb -load
YCSB Client 0.1
Command line: -db com.yahoo.ycsb.db.MongoDbClient -s -P workloads/workloada -p mongodb.url=mongodb://127.0.0.1:27017 -p mongodb.database=ycsb -load
Loading workload...
Starting test.
new database url = 127.0.0.1:27017/ycsb
 0 sec: 0 operations;
mongo connection created with 127.0.0.1:27017/ycsb
java.lang.NullPointerException
 0 sec: 0 operations; [INSERT AverageLatency(us)=28568]
[OVERALL], RunTime(ms), 143.0
[OVERALL], Throughput(ops/sec), 0.0
[INSERT], Operations, 1
[INSERT], AverageLatency(us), 28568.0
[INSERT], MinLatency(us), 28568
[INSERT], MaxLatency(us), 28568
[INSERT], 95thPercentileLatency(ms), 28
[INSERT], 99thPercentileLatency(ms), 28
[INSERT], Return=1, 1
[INSERT], 0, 0
[INSERT], 1, 0
[INSERT], 2, 0
[INSERT], 3, 0
[INSERT], 4, 0
[INSERT], 5, 0
[INSERT], 6, 0
[INSERT], 7, 0
[INSERT], 8, 0
[INSERT], 9, 0
[INSERT], 10, 0
    .
    .
[INSERT], 999, 0
[INSERT], >1000, 0
在这一步之后,我只想检查是否在DB中成功加载了。我用

1. use ycsb
2. db.ycsb.find()
但搜索结果为0。这可能是一个非常简单的问题,但如果有人向我提供在DB中加载和验证数据的正确方法,这将非常有用


谢谢你的帮助

问题在于加载数据时我没有指定的一个必需参数

mongodb.writeConcern是加载数据和运行工作负载时所需的参数。它应该具有以下值之一:

-p mongodb.writeConcern=none
-p mongodb.writeConcern=strict
-p mongodb.writeConcern=normal 
通常-p mongodb.writeConcern=strict可以保持会话的开放性和一致性。这也会停止获取NPE错误


在MongoDB中加载数据后,可以使用db.usertable.find或db.usertable.count命令在usertable/collection中验证数据。

您可以通过命令参数docs.yes来验证该命令是否确实将数据加载到名为ycsb的集合或其他集合中。正如我在问题中提到的,我尝试使用db.ycsb.find命令在db-ycsb中查找名为ycsb的集合。但是它没有显示任何内容。日志说加载时出现了java.lang.NullPointerException异常,您能让它更详细吗?我不知道如何让它更详细。你能给我命令吗请查看这是否有助于确定需要查看的表。