【问题标题】:NoHostAvailable:, In elassandra on insert query with Network Topology StrategyNoHostAvailable:, 在 elassandra 中使用网络拓扑策略插入查询
【发布时间】:2017-09-13 10:57:55
【问题描述】:

在使用网络拓扑策略插入查询的 elassandra 中,它显示“没有可用的主机”。

cqlsh>CREATE KEYSPACE IF NOT EXISTS twitter WITH replication={ 'class':'NetworkTopologyStrategy', 'dc1':'1' };

cqlsh>CREATE TABLE twitter.user (
   name text,
   attrs map<text,text>,
   PRIMARY KEY (name)
);

cqlsh>INSERT INTO twitter.user (name,attrs) VALUES ('bob',{'email':'bob@gmail.com','firstname':'bob'});

节点工具状态

另一个使用相同 dc 的键空间,显示这个

【问题讨论】:

  • 显示使用nodetool状态的输出
  • sachin@user-PC:~/elassandraDemo/elassandra-2.4.2/bin$ ./nodetool status twitter 数据中心:DC1 ============== 状态=Up/Down |/ State=Normal/Leaving/Joining/Moving -- 地址加载令牌拥有(有效)主机 ID 机架 UN 127.0.0.1 186.72 KB 8 0.0% 089a9ce4-7676-4b14-9773-58aa5913fa34 r1

标签: elasticsearch cassandra cqlsh elassandra


【解决方案1】:

将密钥空间的数据中心名称更改为DC1

ALTER KEYSPACE twitter WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1' : 1};

数据中心名称区分大小写。


已编辑

有两种复制策略可用:

  • SimpleStrategy:仅用于单个数据中心。如果您打算使用多个数据中心,请使用 NetworkTopologyStrategy。
  • NetworkTopologyStrategy:强烈推荐用于大多数部署,因为在未来扩展需要时扩展到多个数据中心要容易得多。

【讨论】:

  • 数据中心或复制是否相同?
  • 没有。可以为每个数据中心配置每个 keyspace 的复制
  • 可以在 simpleStrategy 上使用 elasticsearch 吗?
  • @SachinArora 是的,这是可能的。并检查编辑后的答案
  • 它在 DC1 上运行良好,但是当我们使用相同的 DC1 创建另一个键空间时,它就不起作用了。
【解决方案2】:

'dc1' 在创建密钥空间时应该是使用nodetool status 时的数据中心名称

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-18
    • 2014-10-14
    • 2011-03-31
    • 2011-05-08
    • 1970-01-01
    • 2022-07-05
    • 2012-07-13
    • 1970-01-01
    相关资源
    最近更新 更多