Подключение cassandra-stress к AWS Keyspaces

Я подготовил Keyspace на AWS и, чтобы убедиться, что он может достичь желаемой производительности, я пытаюсь запустить cassandra-stress инструмент на нем и сравните его с другими архитектурами, с которыми мы экспериментируем.

Мне удалось подключиться к нему, используя следующие cqlshrc:

[connection]
port = 9142
factory = cqlshlib.ssl.ssl_transport_factory

[ssl]
validate = true
certfile =  /root/.cassandra/AmazonRootCA1.pem

И следующая команда (надеясь, что достаточно скоро появится поддержка Python3, разработка была завершена в феврале этого года в соответствии с их тикетом Jira):

cqlsh cassandra.eu-central-1.amazonaws.com 9142  -u "myuser-at-722222222222" -p "12/12ZmHmtD1klsDk9cgqt/XXXXXXXXxUz6Sy687z/U=" --ssl --cqlversion="3.4.4"

Удивительно или нет, но при использовании официальных руководств AWS все работает нормально.

Я продолжил и попытался подключить cassandra-stress инструмент (у меня он находится внутри контейнера Docker, я бы предпочел, чтобы моя ОС Java была свободной) в то же пространство ключей.

Сначала я преобразовал AWS AmazonRootCA1.pem в cassandra_truststore.jksиспользуя следующие команды (объясненные здесь):

openssl x509 -outform der -in AmazonRootCA1.pem -out temp_file.der
keytool -import -alias cassandra -keystore cassandra_truststore.jks -file temp_file.der

Теперь, когда я пытаюсь запустить реальный инструмент следующим образом:

./cassandra-stress write -node cassandra.eu-central-1.amazonaws.com -port native=9142 thrift=9142 jmx=9142 -transport truststore=/root/.cassandra/cassandra_truststore.jks truststore-password=mypassword -mode native cql3 user="myuser-at-722222222222" password="12/12ZmHmtD1klsDk9cgqt/XXXXXXXXxUz6Sy687z/U="

Я получаю следующую ошибку:

******************** Stress Settings ********************
Command:
  Type: write
  Count: -1
  No Warmup: false
  Consistency Level: LOCAL_ONE
  Target Uncertainty: 0.020
  Minimum Uncertainty Measurements: 30
  Maximum Uncertainty Measurements: 200
  Key Size (bytes): 10
  Counter Increment Distibution: add=fixed(1)
Rate:
  Auto: true
  Min Threads: 4
  Max Threads: 1000
Population:
  Sequence: 1..1000000
  Order: ARBITRARY
  Wrap: true
Insert:
  Revisits: Uniform:  min=1,max=1000000
  Visits: Fixed:  key=1
  Row Population Ratio: Ratio: divisor=1.000000;delegate=Fixed:  key=1
  Batch Type: not batching
Columns:
  Max Columns Per Key: 5
  Column Names: [C0, C1, C2, C3, C4]
  Comparator: AsciiType
  Timestamp: null
  Variable Column Count: false
  Slice: false
  Size Distribution: Fixed:  key=34
  Count Distribution: Fixed:  key=5
Errors:
  Ignore: false
  Tries: 10
Log:
  No Summary: false
  No Settings: false
  File: null
  Interval Millis: 1000
  Level: NORMAL
Mode:
  API: JAVA_DRIVER_NATIVE
  Connection Style: CQL_PREPARED
  CQL Version: CQL3
  Protocol Version: V4
  Username: myuser-at-722222222222
  Password: *suppressed*
  Auth Provide Class: null
  Max Pending Per Connection: 128
  Connections Per Host: 8
  Compression: NONE
Node:
  Nodes: [cassandra.eu-central-1.amazonaws.com]
  Is White List: false
  Datacenter: null
Schema:
  Keyspace: keyspace1
  Replication Strategy: org.apache.cassandra.locator.SimpleStrategy
  Replication Strategy Pptions: {replication_factor=1}
  Table Compression: null
  Table Compaction Strategy: null
  Table Compaction Strategy Options: {}
Transport:
  factory=org.apache.cassandra.thrift.TFramedTransportFactory; truststore=/root/.cassandra/cassandra_truststore.jks; truststore-password=mypassword; keystore=null; keystore-password=null; ssl-protocol=TLS; ssl-alg=SunX509; store-type=JKS; ssl-ciphers=TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA; 
Port:
  Native Port: 9142
  Thrift Port: 9142
  JMX Port: 9142
Send To Daemon:
  *not set*
Graph:
  File: null
  Revision: unknown
  Title: null
  Operation: WRITE
TokenRange:
  Wrap: false
  Split Factor: 1

java.lang.RuntimeException: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: cassandra.eu-central-1.amazonaws.com/3.127.48.183:9142 (com.datastax.driver.core.exceptions.TransportException: [cassandra.eu-central-1.amazonaws.com/3.127.48.183] Channel has been closed))
        at org.apache.cassandra.stress.settings.StressSettings.getJavaDriverClient(StressSettings.java:220)
        at org.apache.cassandra.stress.settings.SettingsSchema.createKeySpacesNative(SettingsSchema.java:79)
        at org.apache.cassandra.stress.settings.SettingsSchema.createKeySpaces(SettingsSchema.java:69)
        at org.apache.cassandra.stress.settings.StressSettings.maybeCreateKeyspaces(StressSettings.java:228)
        at org.apache.cassandra.stress.StressAction.run(StressAction.java:57)
        at org.apache.cassandra.stress.Stress.run(Stress.java:143)
        at org.apache.cassandra.stress.Stress.main(Stress.java:62)
Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: cassandra.eu-central-1.amazonaws.com/3.127.48.183:9142 (com.datastax.driver.core.exceptions.TransportException: [cassandra.eu-central-1.amazonaws.com/3.127.48.183] Channel has been closed))
        at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:233)
        at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:79)
        at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1424)
        at com.datastax.driver.core.Cluster.getMetadata(Cluster.java:403)
        at org.apache.cassandra.stress.util.JavaDriverClient.connect(JavaDriverClient.java:160)
        at org.apache.cassandra.stress.settings.StressSettings.getJavaDriverClient(StressSettings.java:211)
        ... 6 more

Я пробовал изменить некоторые параметры, такие как jks пароль и т. д. (на случай, если я ошибся), но у меня другое сообщение об ошибке, так что, вероятно, это не так.

Я что-то пропустил?

2 ответа

Попробуйте вместо этого использовать TLP Stress.

tlp-stress run RandomPartitionAccess -d 10m --host cassandra.us-east-1.amazonaws.com --port 9142 --username alice --password fLyWYFlTCD5J2gzGAZ –ssl --max-requests 4000 --dc us-east-2 --threads 10

https://thelastpickle.com/tlp-stress/

Стратегией по умолчанию для Кассандры-стресс является SimpleStragey, как показано в ваших выводах.

Схема: Пространство ключей: пространство ключей1

Стратегия репликации: org.apache.cassandra.locator.SimpleStrategy Параметры стратегии репликации: {replication_factor=1}

Возможно, вам придется изменить это на Keyspaces SingleRegionStrategy:

      ALTER KEYSPACE keyspace1 WITH REPLICATION = {'class': 'SingleRegionStrategy'};
Другие вопросы по тегам