Я пытаюсь запустить cassandra-strees с определенным собственным файлом .yaml, но все равно получаю сообщение об ошибке:
java.io.IOError: java.io.FileNotFoundException: /home/kenik/Documents/stress.yaml (No such file or directory)
Что очень неприятно для меня.
Позвольте мне объяснить, почему.
Прежде всего, мой файлress.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
'Кассандра' - мой контейнер, который в данный момент работает.
Абсолютный путь к stress.yaml
файлу /home/kenik/Documents/stress.yaml
Я проверил это с помощью команды: readlink -f stress.yaml
. Я в каталоге, где находится файл Stress.yaml.
Как вы видите, путь, кажется, в порядке, но стресс Кассандры все равно не может его найти.
Знаете ли вы, как выполнить этот стресс-тест на кассандру?
// ОБНОВЛЕНИЕ
При запуске контейнера я использую команду:
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
Результат тот же: исключение файла не найдено. Я обновил сообщение, потому что я должен был набрать какой-то текст или неправильно понял ответ.