【问题标题】:How do you use sstableloader to populate a Cassandra Cluster?如何使用 sstableloader 填充 Cassandra 集群?
【发布时间】:2011-11-24 11:13:58
【问题描述】:

我已经使用 Whirr 在 EC2 上设置了一个 3 节点 Cassandra 集群。我还有一个第四个 EC2 实例,用于在 example from DataStax 之后编写 sstables。

编写 sstables 后,我正在尝试加载 Cassandra 集群,但我不断收到:

Starting client (and waiting 30 seconds for gossip) ...
java.lang.IllegalStateException: Cannot load any sstable, no live member found in the cluster

我已经将 sstableloader cassandra.yaml 中的种子配置为集群中的一个节点,并开放了集群中的种子节点和 sstableloader 实例之间的端口。我能够使用 sstableloader 实例中的 cassandra-cli 到达种子节点,所以我认为这一切都配置正确。

我还有什么遗漏的吗?是否必须在集群节点之一上运行 sstableloader 才能让 gossip 工作?

【问题讨论】:

    标签: amazon-ec2 cassandra


    【解决方案1】:

    您在节点之间打开了哪些端口? gossip 需要端口 7000(默认)。

    【讨论】:

    • 7000 和 9160 (TCP) 两个实例的 yaml 中指定的存储和 rpc 端口。
    • 我最好的选择是它没有使用你认为的 conf 文件。您是否在某个时候从包中安装了 cassandra,现在正在从下载中运行? sstableloader 脚本会先查看 /etc/cassandra 和 /usr/share/cassandra 等位置,然后再查看本地目录。您可以通过将“CASSANDRA_HOME”设置为包含您要使用的 conf/ 目录的目录来覆盖此行为。
    • 肯定是使用了正确的配置文件。在this example 之后,我能够通过设置环回地址将 sstableloader 连接到在同一个盒子上运行的第二个 cassandra 实例。我可以查看该 cassandra 实例的日志并查看 stabbleloader 连接并开始加载。但是仍然无法连接到远程集群。
    猜你喜欢
    • 2014-11-27
    • 2016-05-04
    • 2013-11-03
    • 2017-01-31
    • 2011-10-13
    • 2013-06-24
    • 2015-06-29
    • 1970-01-01
    • 2015-08-27
    相关资源
    最近更新 更多