【问题标题】:All Cassandra nodes have the same DC and rack but Java driver warns about some contact points are from a different DC所有 Cassandra 节点都具有相同的 DC 和机架,但 Java 驱动程序警告某些接触点来自不同的 DC
【发布时间】:2022-01-19 13:51:42
【问题描述】:

我们有一个由 3 个节点组成的 Cassandra 集群版本 3.11.11,位于 Azure 的同一个虚拟网络中。

nodetool info 报告datacenter1 是每个节点的数据中心:

Data Center            : datacenter1
Rack                   : rack1

这里是nodetool status 输出:

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address     Load       Tokens       Owns (effective)  Host ID                               Rack
UN  172.22.0.6  171.59 GiB  256          67.2%             7bc5241d-ed74-4ac6-bdcb-cab41b3a2104  rack1
UN  172.22.0.4  170.67 GiB  256          66.4%             6d425e7f-1f04-4d9e-9bc6-47b2b1b7810e  rack1
UN  172.22.0.5  170.75 GiB  256          66.4%             30cce9ef-56a5-47ff-bfde-632dadf068da  rack1

这是nodetool gossipinfo 输出:

/172.22.0.6
  generation:1634048234
  heartbeat:5869658
  STATUS:18:NORMAL,-1125078076903450660
  LOAD:5869634:1.83740260211E11
  SCHEMA:14:45c7f8ec-4e41-394a-9ea2-7a0ef644ec60
  DC:10:datacenter1
  RACK:12:rack1
  RELEASE_VERSION:5:3.11.11
  INTERNAL_IP:8:172.22.0.6
  RPC_ADDRESS:4:13.94.187.33
  NET_VERSION:2:11
  HOST_ID:3:7bc5241d-ed74-4ac6-bdcb-cab41b3a2104
  RPC_READY:30:true
  SSTABLE_VERSIONS:6:big-me,big-md
  TOKENS:17:<hidden>
/172.22.0.4
  generation:1634047421
  heartbeat:5869859
  STATUS:18:NORMAL,-1031235602051957145
  LOAD:5869827:1.82809890792E11
  SCHEMA:14:45c7f8ec-4e41-394a-9ea2-7a0ef644ec60
  DC:10:datacenter1
  RACK:12:rack1
  RELEASE_VERSION:5:3.11.11
  INTERNAL_IP:8:172.22.0.4
  RPC_ADDRESS:4:52.157.177.58
  NET_VERSION:2:11
  HOST_ID:3:6d425e7f-1f04-4d9e-9bc6-47b2b1b7810e
  RPC_READY:30:true
  SSTABLE_VERSIONS:6:big-me,big-md
  TOKENS:17:<hidden>
/172.22.0.5
  generation:1634048028
  heartbeat:5868190
  STATUS:18:NORMAL,-1023554233107573736
  LOAD:5868171:1.82744456298E11
  SCHEMA:14:45c7f8ec-4e41-394a-9ea2-7a0ef644ec60
  DC:10:datacenter1
  RACK:12:rack1
  RELEASE_VERSION:5:3.11.11
  INTERNAL_IP:8:172.22.0.5
  RPC_ADDRESS:4:13.81.175.208
  NET_VERSION:2:11
  HOST_ID:3:30cce9ef-56a5-47ff-bfde-632dadf068da
  RPC_READY:32:true
  SSTABLE_VERSIONS:6:big-me,big-md
  TOKENS:17:<hidden>

然而,当我们使用 Cassandra Java 驱动程序时,我们会收到以下警告。

12:23:19.181 [s0-admin-0] WARN  c.d.o.d.i.c.l.h.OptionalLocalDcHelper - [s0|default] You specified datacenter1 as the local DC, but some contact points are from a different DC: Node(endPoint=xxx-node-02.westeurope.cloudapp.azure.com/xxx:9042, hostId=null, hashCode=18a8031a)=null, Node(endPoint=xxx-node-01.westeurope.cloudapp.azure.com/xxx:9042, hostId=null, hashCode=424a8b33)=null; please provide the correct local DC, or check your contact points

Cassandra 驱动版本为com.datastax.oss:java-driver-core:4.13.0

如何解决它们?谢谢

【问题讨论】:

  • 你能分享nodetool status的输出吗?
  • 感谢@wtekiela 我已将其添加到我的原始帖子中。

标签: java cassandra


【解决方案1】:

在上面的警告信息中:

hostId=null

对我来说,那个 ^ 是可疑的。这表明集群中曾经有一些节点(已被删除)没有完全完成删除过程。因此,死 IP 和其他一些信息仍在一个或多个节点上闲逛。

在一些好的节点上,尝试运行 nodetool gossipinfo 或(通过 cqlsh)SELECT peer,host_id,data_center FROm system.peers;

您要查找的是未在您的nodetool status 中列出的节点/IP。请记住,gossip 对于集群中的每个节点都是唯一的,因此您必须检查所有节点。一旦找到它们,nodetool assassinate 绝对应该摆脱它们。

nodetool assassinate <old_ip_address>

【讨论】:

  • 感谢 Aaron,看起来没有列出死 IP,我在原帖中添加了 gossip 命令输出。
猜你喜欢
  • 2020-06-14
  • 2020-01-26
  • 1970-01-01
  • 2020-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-13
  • 1970-01-01
相关资源
最近更新 更多