当前位置: 首页 > 知识库问答 >
问题:

Java Elasticsearch-Hadoop配置的节点均不可用

澹台星光
2023-03-14

因此,我正在运行一个Hadoop查询,它需要Amazon EC2上运行的ElasticSearch索引中的一个字段的信息。问题是,我总是得到“没有一个配置的节点可用”的错误。更令人沮丧的是,我几天前还在工作,但由于缺乏CPU操作,它在查询过程中退出了。但我的合作伙伴不知道这一点,所以他试图找出为什么它在查询中失去连接似乎导致了这个问题。他也不记得自己做了什么。

我知道以前有人问过这个问题,但我确信我的集群名称是正确的,我在ES上运行的查询不应该导致超时,以前运行时也没有。此外,不应该有防火墙问题,因为我直接在EC2实例上运行程序。它是一个使用YARN的伪分布式单节点集群。EC2实例有一个相关的弹性IP(这意味着它的公共IP将保持不变),并且运行Amazon的ubuntu映像。

下面是java代码(已删除标识信息):

public static String getAccountNumber(int fieldValue){
    //tried it without the Settings, but still no dice.
    Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "elasticsearch").build();
    TransportClient client = new TransportClient(settings)
       .addTransportAddress(new InetSocketTransportAddress("ec2-<ELASTIC_IP>.compute-1.amazonaws.com", 9300));
    FilterBuilder filter = boolFilter()
            .should(termFilter("objectName1.field", fieldValue))
            .should(termFilter("objectName2.field", fieldValue));
    SearchResponse response= client.prepareSearch("indexName")
            .setTypes("type")
            .setPostFilter(filter)
            .setSize(1000)
            .execute()
            .actionGet();
    //other logic

如果您需要我提供我的core-site.xml、hdfs-site.xml或其他东西,请告诉我。

共有1个答案

南门承教
2023-03-14

解决了!在另一个逻辑部分,我有“client.close();”。发表意见解决了我的问题。

 类似资料:
  • 刚刚下载并安装了elasticsearch 1.3.2 打开到端口9200和9300的IP表:9400

  • 我正在尝试从Java Web服务中的弹性搜索进行搜索,下面是我现在的使用方法: 我在Java程序中做了什么(防火墙、库版本、调用API的方法等)错了吗?我现在的Java版本是1.8.0.121,Elastic Search和Transport Client的版本都是5.2。谢了!

  • 我使用spring-data-elasticsearch的3.0.0版本在使用过程中出现了一个问题,有时成功,有时会报错 配置的节点均不可用:[{#Transport#-1}{S0DLwdVZRk-Osl4KgxM91A}{127.0.0.1}{127.0.0.1:9300} Elasticsearch版本为5.4.0。 我的spring配置文件是 这个错误不是经常出现,而是偶尔出现

  • 问题内容: 我正在尝试从Java Web Service中的Elastic Search中进行搜索,这是我现在使用的方式: 第一行可以正常工作,但是转到第二行时,将发生以下异常: NoNodeAvailableException [没有已配置的节点可用:[{#transport#-1} {TskPSVeBRR6CvCzP9EVhkQ} {192.168.10.150} {192.168.10.15

  • 问题内容: 我正在上它可为本地 我正在使用Elastic4s进行连接,尝试了以下方法,但是所有这些都给了我错误 和 错误是 我完整的代码是 问题答案: 9200是用于通过HTTP连接的端口,这就是为什么它可以在您的浏览器中工作的原因。如果检查堆栈跟踪的顶部,则可以看到通过传输客户端(即TCP)进行连接,因此需要使用端口9300。试试这个:

  • 问题内容: 过去一个小时刚刚下载并安装了elasticsearch 1.3.2 打开到端口9200和9300:9400的IP表 在/ etc / hosts中设置我的计算机名称和IP 头模块和护理人员已安装且运行平稳 卷曲在本地主机上工作完美 将所有jar从下载中复制到eclipse中,因此版本相同 --Java– -输出- 更新:现在我真的很困惑。我只是按了日食3次。2次收到上述错误。1次搜索成