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}]
 

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

配置文件位置如下:

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

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

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

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

 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方式不同:

 

 <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>5.5.2</version>
        </dependency>


@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");

    }

 

 

<dependency>  
            <groupId>org.elasticsearch</groupId>  
            <artifactId>elasticsearch</artifactId>  
            <version>2.4.0</version>  
        </dependency> 


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();

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值