除了使用 nodetool status 之外,还有其他方法可以获取 cassandra hostid 吗?

Is there any other way to get a cassandra hostid other than using nodetool status?

我可以使用 nodetool status 列出完整的集群信息,输出如下所示。

Datacenter: bi
==============
Status=Up/Down|/ State=Normal/Leaving/Joining/Moving
--  Address       Load       Tokens       Owns    Host ID                               
Rack
UN  10.132.2.93   19.88 GiB  32           ?       g94eee1f-1ge1-45c3-8cfgb-643719456c4fd  us-east-1a
UN  10.221.1.140  11.64 GiB  32           ?       b38f2fb2-fcf2-4567-b0cc-1548f63f0f24  us-east-1c

是否有一种更简单的方法可以从当前节点(终端通过 ssh 进入的节点)获取 Host ID 而无需从 status 输出中解析它?

我正在使用 datastax enterprise...以防万一

每个节点都在system.localtable中保存关于自己的信息。您可以使用 cqlsh 获取此信息。

cqlsh 10.132.2.93 -e 'SELECT host_id FROM system.local;'
cqlsh 10.221.1.140 -e 'SELECT host_id FROM system.local;'

它还在 system.peers table 中保存相同类型的信息,但这仅适用于除自身以外的所有其他节点。这就是为什么我认为对每个节点执行一个查询更容易。