将cassandra stress连接到aws密钥空间

c9x0cxw0  于 2021-06-13  发布在  Cassandra
关注(0)|答案(1)|浏览(433)

我在aws上设置了一个keyspace,为了确保它能够达到我们想要的性能,我正在尝试运行 cassandra-stress 并将其与我们正在试验的其他体系结构进行比较。
我用以下方法连接到它 cqlshrc :

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

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

以及以下命令(希望很快会有python3的支持,根据他们的jira票证,开发于今年2月完成):

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容器中,我宁愿让我的os 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 密码等(以防万一我错了),但我得到了一个不同的错误信息,所以可能不是这样。
我错过什么了吗?

svgewumm

svgewumm1#

尝试使用tlp压力代替。

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/

相关问题