我可以使用 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 连接到的节点)获取主机 ID
,而无需从状态
中解析它输出?
我正在使用 datastax enterprise...以防有帮助
最佳答案
每个节点都在 system.local 表中保存有关自身的信息。您可以使用 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 表中保存相同类型的信息,但这仅适用于除自身之外的所有其他节点。这就是为什么我认为对每个节点执行一次查询会更容易。
关于cassandra - 除了使用 nodetool status 之外,还有其他方法获取 cassandra hostid 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47192548/