我正在使用YCSB(Yahoo! Cloud Serving Benchmark)来测量部署在CentOS上的 2 节点Cassandra(2.0.2)集群的性能。为了使用 YCSB 加载数据,我执行了以下操作——
bin/ycsb load cassandra -P workloads/cassandraLoadA -s files/load.dat
此行使用属性文件cassandraLoadA并存储在 load.dat 中生成的YCSB。这里的 ycsb文件是用 Python 编写的。现在我想从 Java 程序中执行上述操作。我尝试使用ProcessBuilder和Runtime对象但失败了。
使用 ProcessBuilder 对象-
ProcessBuilder builder = new ProcessBuilder("/DIRECTORY_HERE/bin/ycsb","load","cassandra","-P", "workloads/cassandraLoadA","-s","files/load.dat");
Map<String, String> environ = builder.environment();
final Process process = builder.start();
使用运行时对象 -
Process p = Runtime.getRuntime().exec("cd /DIRECTORY_HERE/bin/ycsb load cassandra -P workloads/cassandraLoadA -s files/load.dat");
p.waitFor();
Q1:我在这里做错了吗?
Q2:如何实现?
最好的问候
-Avijoy