我正在尝试使用定义的自己的 .yaml 文件运行 cassandra-strees,但我仍然遇到错误:
java.io.IOError: java.io.FileNotFoundException: /home/kenik/Documents/stress.yaml (No such file or directory)
这对我来说很麻烦。让我解释一下为什么。
首先是我的 stress.yaml 文件:
# Keyspace name and create CQL
#
CREATE KEYSPACE weatherteller
WITH REPLICATION = {
'class' : 'SimpleStrategy',
'datacenter1' : 1
};
#
# Table name and create CQL
#
table: weather
table_definition:
CREATE TABLE weatherteller.weather (
weatherid bigint,
measurementdate timestamp,
summary varchar,
preciptype varchar,
temperature double,
apparenttemperature double,
humidity double,
windspeed double,
windbearing double,
visibility double,
pressure double,
dailysummary varchar,
city varchar,
PRIMARY KEY (weatherid, measurementdate, city)
)
#
columnspec:
- name: weatherid
size: uniform(1..64)
- name: measurementdate
cluster: uniform(20...40)
- name: summary
size: gaussian(100...500)
- name: preciptype
size: uniform(1..32)
- name: temperature
size: uniform(1..32)
- name: apparenttemperature
size: uniform(1..32)
- name: humidity
size: uniform(1..10)
- name: windspeed
size: uniform(1..10)
- name: windbearing
size: uniform(1..10)
- name: visibility
size: uniform(1..10)
- name: pressure
size: uniform(1..10)
- name: dailysummary
size: uniform(1..100)
- name: city
size: uniform(1..100)
insert:
partitions: fixed(1)
select: fixed(1)/500
batchtype: UNLOGGED
queries:
weather:
cql: select * from weather where weatherid = ? and measurementdate = ? and city = ?
fields: samerow
我运行的命令:
docker exec -it cassandra cassandra-stress user profile=file:///home/kenik/Documents/stress.yaml no-warmup ops\(insert=1,weather=1\) n=10000 -graph file=./stress.html
'cassandra' 是我当前正在运行的容器。
文件的绝对路径stress.yaml
是/home/kenik/Documents/stress.yaml
我使用命令检查过的:readlink -f stress.yaml
。我在放置stress.yaml 的目录中。如您所见,路径似乎很好,但 cassandra-stress 无论如何都找不到它。
您知道运行此 cassandra 压力测试的任何方法吗?
//更新当启动容器时我使用命令:
docker run -e DS_LICENSE=accept -e CASSANDRA_CLUSTER_NAME=MyCluster -e CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch -e CASSANDRA_DC=datacenter1 -v /home/kenik/Documents/dir -p 9042:9042 --name cassandra -m 2g -d modified-cassandra
或者
docker run -e DS_LICENSE=accept -e CASSANDRA_CLUSTER_NAME=MyCluster -e CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch -e CASSANDRA_DC=datacenter1 -v /home/kenik/Documents/:/dir -p 9042:9042 --name cassandra -m 2g -d modified-cassandra
并尝试执行测试:
docker exec -it cassandra cassandra-stress user profile=file:///dir/stress.yaml ops\(insert=1\) n=10000 -graph file=stress.html
结果是一样的:找不到文件异常。我已经更新了帖子,因为我可能会做出某种类型或没有正确理解答案。