apache cassandra 4.0 中的 sstabeloader 正在使用 9042 传输端口,即使在使用“-p”选项覆盖它之后也是如此

sstabeloader in apache cassandra 4.0 is using 9042 transport port even after overriding it with the "-p" option

使用的命令行是: ~/apache-cassandra-4.0.1/bin/sstableloader -d 10.14.20.148 -cph 1 -idct 0 -p 9942 -ssp 7011 -sp 7010 --verbose ~/cassandra4_experiment/nishant/employee/

请注意,给定的传输端口是 9942,但我仍然看到对 /10.14.20.148:9042 的调用。感谢您对此提供任何帮助。

Cassandra 人员在 4.0 中对 sstableloader 进行了重大更改。

目前它解析 -p-sp 选项(本机和存储端口),但没有按照记录和预期使用它们。

  1. 本地端口(-p 选项)被忽略。通过自定义端口的方式是-d host1:native_port1,host2:native_port2,...。所以,你的命令应该看起来像
sstableloader -d 10.14.20.148:9942 ...

我的猜测是他们试图统一所有客户端工具的端点格式。

  1. 存储端口(-sp 选项)是一个较长的故事。 在启动时,sstableloader 连接到给定的 Cassandra 集群,获取其广播地址和存储端口并使用它们。仅当 Cassandra 集群在其配置文件中没有 broadcast_address ($CASSANDRA_HOME/conf/cassandra.yaml) 时,sstableloader 默认为存储端口,作为选项传递。请参阅 CASSANDRA-14522 中的详细信息。