java elasticsearch hadoop配置的节点都不可用

s2j5cfk0  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(343)

所以我正在运行一个hadoop查询,它需要运行在amazonec2上的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或其他什么,请告诉我。

dfddblmv

dfddblmv1#

解决了!在另一个逻辑部分,我有“client.close();”。说出来解决了我的问题。

相关问题