【问题标题】:NoNodeAvailableException[None of the configured nodes were available:NoNodeAvailableException [没有配置的节点可用:
【发布时间】:2020-07-02 02:30:37
【问题描述】:

如果我不设置大小,我可以得到 10 次点击:

SearchResponse sr = client.prepareSearch("xxx").setTypes("xxx")
                .setQuery(rangeQueryBuilder)
                .setQuery(queryBuilder)

但是当我设置大小超过 12 时:

SearchResponse sr = client.prepareSearch("xxx").setTypes("xxx")
                .setSize(13)
                .setQuery(rangeQueryBuilder)
                .setQuery(queryBuilder)

我遇到了这个问题: NoNodeAvailableException [没有配置的节点可用:[{gw_172.28.236.85:40001}{oHcfPhqFQDSW4opwUuzCpA}{P1GbtDqrRda4nlbRRBmW1Q}{172.28.236.85}{172.28.236.85:40101}{xpack.installed=true}, 我的 java 连接代码:

    public static TransportClient client() throws UnknownHostException {
    if (client != null) {
        return client;
    }
    synchronized (esConnection_old.class) {
        if (client == null) {
            Settings settings = Settings.builder().put("cluster.name", ClusterName)
                    .put("client.transport.sniff", false)
                    .put(SecurityKey, basicAuthHeaderValue(SecurityUser, SecurityPassword))
                    .build();

            client = new PreBuiltTransportClient(settings);


            String[] oneInstance = GatewayIpPorts.split(",");
            for (String item : oneInstance) {
                String[] ipPort = item.split(":");
                client.addTransportAddresses(new TransportAddress(InetAddress.getByName(ipPort[0]), Integer.parseInt(ipPort[1])));
            }
            return client;
        }
        return client;
    }
}

【问题讨论】:

    标签: elasticsearch elasticsearch-exception


    【解决方案1】:

    通常,当 Elasticsearch 需要在节点上执行特定操作(分配分片、索引和搜索数据)并且找不到可以服务这些请求的节点时,就会出现此异常。

    您可以查看NoNodeAvailableException 代码并追溯它,我查看了这是最新的代码,但找不到您尝试执行的搜索操作的None of the configured nodes were available:

    请提供您的 elasticsearch 版本,并确认此异常只是因为 size 参数值超过 10?

    【讨论】:

    • 感谢您的回答。我的es版本是6.3.2,我使用java scroll api获取更多数据,有时可以获取10多个,但出现同样的问题,数据个数总是10的倍数。但是如果我使用邮递员,我可以得到我想要的所有数据。第一次尝试用java连接es,不知道有没有什么技巧可以检查我的节点或者配置文件?
    • @jiasheng123 是的,请提供节点的配置,但是您在通过 Java 连接时是否始终遇到此异常?
    • @jiasheng123 也可以提供代码,如何创建 Elasticsearch 客户端和您的 elasticsearch 配置(数据节点数)等
    • 我检查了集群,它有两种类型的节点,客户端节点和数据节点。当java代码中“client.transport.sniff”设置为“false”时,没有数据节点可用,设置为“true”时,没有客户端节点可用。
    • @jiasheng123 好运吗?已经有一段时间了,如果您能投票并接受答案,那就太好了
    猜你喜欢
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多