gpt4 book ai didi

ubuntu - 在单个 ubuntu 服务器上设置 cassandra 多节点集群

转载 作者:太空宇宙 更新时间:2023-11-03 16:48:59 28 4
gpt4 key购买 nike

我现在有一个 Cassandra 服务在我的 Ubuntu 服务器上运行,只有一个节点。我想把它变成一个有 3 个节点的环形集群,以获得多节点集群都在同一台服务器上的感觉。按照此链接中的步骤操作 https://www.youtube.com/watch?v=oHMJrhMtv3c ,我试图在不停止已经运行的 cassandra 服务的情况下创建一个新的集群。但它抛出了地址 Caused by: java.net.BindException: Address already in use。所以我尝试将种子 ip 更改为已经运行的 cassandra ip 地址,并尝试在前台运行第二个 cassandra 服务。这次它抛出了 java.lang.RuntimeException: Unable to create thrift socket to ip port。请让我知道如何将节点添加到同一台服务器上已经运行的单节点集群。

最佳答案

在同一台 Ubuntu 机器上运行多个 Cassandra 实例是非常容易的,只要它们有不同的 IP 地址,并且都解析到本地主机。整个 127.0.0.0/8 地址 block 保留用于环回目的,因此发送到地址(127.0.0.1 到 127.255.255.254)的任何数据包都将被环回。

  • 使用 ping 检查地址是否正确解析。
  • 将两个(或更多)Cassandra 实例放入不同的文件夹。

编辑cassandra.yaml并替换

  • 各种文件位置到给定 Cassandra 实例独有的位置。
  • localhost 到我们为该实例提供的 IP 地址(如 127.0.0.2)。
  • 使用 SimpleSeedProvider 并将所有其他 Cassandra 实例的地址放入种子列表以创建一个集群(如 - seeds: "127.0.0.2","127.0.0.3"
  • 不要更改任何端口号,这没有帮助也不是必需的。

编辑cassandra-env.sh,找到设置JMX_PORT属性的位置,并为每个Cassandra实例赋予不同的值(不同的端口)。否则,由于此端口上的冲突,实例无法一起运行。

  • 使用 ./cassandra 启动脚本逐个启动实例(稍后您可以为此编写简单的 bash 脚本)。
  • 使用 ./nodetool status 验证您的拓扑。例如,对于两个节点,输出必须如下所示

    Datacenter: datacenter1
    =======================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    -- Address Load Tokens Owns (effective) Host ID Rack
    UN 127.0.0.1 61.97 KB 256 100.0% 6c04e202-8f24-4f17-b430-0154c1512316 rack1
    UN 127.0.0.2 105.68 KB 256 100.0% ca3073ee-451c-4cef-97ee-d312784648bb rack1

关于ubuntu - 在单个 ubuntu 服务器上设置 cassandra 多节点集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22513979/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com