Elasticsearch -NoNodeAvailableException[None of the configured nodes are available:--异常

楼主在使用Elasticsearch ,java测试是,报错如下:

NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{6XeVerfGReC8-hsUOe0iHQ}{hadoop001}{10.20.134.10:9300}]
 

在网上搜了一下,原因总结如下:

配置文件位置如下:

Elasticsearch -NoNodeAvailableException[None of the configured nodes are available:--异常_第1张图片

第一种,配置文件的ip地址没有修改

第二种,使用client连接的端口号应该是9300

第三种,由于配置文件中,修改了集群的名字,而在代码创建连接是,没有指定cluster的名称,

Elasticsearch -NoNodeAvailableException[None of the configured nodes are available:--异常_第2张图片

如下,代码没有指定集群名称

 private Logger logger = LoggerFactory.getLogger(ElasticsearchTest2.class);

    public final static String HOST = "hadoop001";

    public final static int PORT = 9300; //http请求的端口是9200,客户端是9300

    private TransportClient client = null;

    /**
     * 9      * 获取客户端连接信息
     * 10      * @Title: getConnect
     * 11      * @author sunt
     * 12      * @date 2017年11月23日
     * 13      * @return void
     * 14      * @throws UnknownHostException
     * 15
     */
    @SuppressWarnings({"resource", "unchecked"})
    @Before
    public void getConnect() throws Exception {
        client = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddresses(
                new InetSocketTransportAddress(InetAddress.getByName(HOST), PORT));
        logger.info("连接信息:" + client.toString());
    }

 

带有集群名称的连接:

注意不同的版本创建setting方式不同:

 

 
            org.elasticsearch.client
            transport
            5.5.2
        


@Test
    public  void testEs() throws Exception{
        // 通过setting对象指定集群配置信息, 配置的集群名
        Settings settings = Settings.builder().put("cluster.name", "bigdata") // 设置集群名
//                .put("client.transport.sniff", true) // 开启嗅探 , 开启后会一直连接不上, 原因未知
//                .put("network.host", "192.168.50.37")
                .put("client.transport.ignore_cluster_name", true) // 忽略集群名字验证, 打开后集群名字不对也能连接上
//                .put("client.transport.nodes_sampler_interval", 5) //报错,
//                .put("client.transport.ping_timeout", 5) // 报错, ping等待时间,
                .build();
        client = new PreBuiltTransportClient(settings).addTransportAddresses(
                new InetSocketTransportAddress(InetAddress.getByName(HOST), PORT));
        // 默认5s
        // 多久打开连接, 默认5s
        System.out.println("success connect");

    }

 

 

  
            org.elasticsearch  
            elasticsearch  
            2.4.0  
         


Settings settings = ImmutableSettings.settingsBuilder().put("client.transport.ping_timeout", 1000)
                .put("discovery.zen.ping.multicast.enabled", "false").put("timeout", 1)
                .putArray("discovery.zen.ping.unicast.hosts", "l-flightdev18.f.dev.cn0.qunar.com:9300", "l-flightdev17.f.dev.cn0.qunar.com:9300")
                .build();
        Node node = NodeBuilder.nodeBuilder().clusterName("flight_fuwu_order_index").client(true).settings(settings).node();
        Client client = node.client();

 

 

 

 

你可能感兴趣的:(bug异常)