从运行结果看并没有打印节点信息出来

从结果看出来,集群节点信道打印出来了,不过这种方法有个问题,就是当我们连接的节点挂掉了,就没法连接整个集群了,这个时候我们就利用他的一个嗅探的功能。

从这里我们可以看到,通过嗅探功能把集群的三个节点都打印出来了

实际上我们只传入master节点,但是同过master节点探测到其他两个节点信息

但是但应用重启之后master节点挂掉了就不能连接集群了,为了防止容错性,我们就多设置几个节点

参考代码ESTestClient.java

 package com.dajiangtai.djt_spider.elasticsearch;

 import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.List; import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.junit.Before;
import org.junit.Test;
/**
* 获取TransportClient
* @author 大讲台
*
*/
public class ESTestClient { /**
* 测试使用Java API 连接ElasticSearch 集群
*
* @throws UnknownHostException
*/
@Test
public void test1() throws UnknownHostException {
// on startup
// 获取TransportClient
TransportClient client = TransportClient
.builder()
.build()
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("master"), 9300)); List<DiscoveryNode> connectedNodes = client.connectedNodes();
for (DiscoveryNode discoveryNode : connectedNodes) {
System.out.println("集群节点:"+discoveryNode.getHostName());
}
// on shutdown
client.close();
} /**
* 生成环境下,ElasticSearch集群名称非默认需要显示设置
*
* @throws UnknownHostException
*/
@Test
public void test2() throws UnknownHostException {
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "escluster").build();
// on startup
// 获取TransportClient
TransportClient client = TransportClient
.builder()
.settings(settings)
.build()
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("master"), 9300)); List<DiscoveryNode> connectedNodes = client.connectedNodes();
for (DiscoveryNode discoveryNode : connectedNodes) {
System.out.println("集群节点:"+discoveryNode.getHostName());
} // on shutdown
client.close();
} /**
* 1、启动应用程序之后,client.transport.sniff能保证即使master挂掉也能连接上集群
* 2、master节点挂机同时应用程序重启,则无法连接ElasticSearch集群
*
* @throws UnknownHostException
*/
@Test
public void test3() throws UnknownHostException { // 开启client.transport.sniff功能,探测集群所有节点
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "escluster")
.put("client.transport.sniff", true).build();
// on startup
// 获取TransportClient
TransportClient client = TransportClient
.builder()
.settings(settings)
.build()
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("master"), 9300)); List<DiscoveryNode> connectedNodes = client.connectedNodes();
for (DiscoveryNode discoveryNode : connectedNodes) {
System.out.println("集群节点:"+discoveryNode.getHostName());
} // on shutdown
client.close();
} /**
* 1、启动应用程序之后,client.transport.sniff能保证即使master挂掉也能连接上集群
* 2、设置多节点,防止其中一个节点挂机同时应用程序重启,无法连接ElasticSearch集群问题
*
* @throws UnknownHostException
*/
@Test
public void test4() throws UnknownHostException { // 开启client.transport.sniff功能,探测集群所有节点
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "escluster")
.put("client.transport.sniff", true).build();
// on startup
// 获取TransportClient
TransportClient client = TransportClient
.builder()
.settings(settings)
.build()
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("master"), 9300))
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("slave1"), 9300))
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("slave2"), 9300)); List<DiscoveryNode> connectedNodes = client.connectedNodes();
for (DiscoveryNode discoveryNode : connectedNodes) {
System.out.println("集群节点:"+discoveryNode.getHostName());
} // on shutdown
client.close();
}
}

ElasticSearch client API的更多相关文章

  1. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十)ES6.2.2 Client API

    scala版本2.11 java版本1.8 spark版本2.2.1 es版本6.2.2 hadoop版本2.9.0 elasticsearch节点列表: 192.168.0.120 192.168. ...

  2. Elasticsearch Java Rest Client API 整理总结 (一)——Document API

    目录 引言 概述 High REST Client 起步 兼容性 Java Doc 地址 Maven 配置 依赖 初始化 文档 API Index API GET API Exists API Del ...

  3. Elasticsearch Java Rest Client API 整理总结 (二) —— SearchAPI

    目录 引言 Search APIs Search API Search Request 可选参数 使用 SearchSourceBuilder 构建查询条件 指定排序 高亮请求 聚合请求 建议请求 R ...

  4. Elasticsearch Java Rest Client API 整理总结 (三)——Building Queries

    目录 上篇回顾 Building Queries 匹配所有的查询 全文查询 Full Text Queries 什么是全文查询? Match 全文查询 API 列表 基于词项的查询 Term Term ...

  5. Elasticsearch java api操作(二)(Java High Level Rest Client)

    一.说明: 一.Elasticsearch提供了两个JAVA REST Client版本: 1.java low level rest client: 低级别的rest客户端,通过http与集群交互, ...

  6. Elasticsearch java api操作(一)(Java Low Level Rest Client)

    一.说明: 一.Elasticsearch提供了两个JAVA REST Client版本: 1.java low level rest client: 低级别的rest客户端,通过http与集群交互, ...

  7. elasticsearch Java API汇总

    http://blog.csdn.net/changong28/article/details/38445805#comments 3.1 集群的连接 3.1.1 作为Elasticsearch节点 ...

  8. ElasticSearch Java api 详解_V1.0

    /×××××××××××××××××××××××××××××××××××××××××/ Author:xxx0624 HomePage:http://www.cnblogs.com/xxx0624/ ...

  9. [搜索]ElasticSearch Java Api(一) -添加数据创建索引

    转载:http://blog.csdn.net/napoay/article/details/51707023 ElasticSearch JAVA API官网文档:https://www.elast ...

随机推荐

  1. vim configures for normal work

    " " 主要用于保留一些常用的vim配置,省得每次都另外写,效率太低. " " 2015-09-18 深圳 南山平山村 曾剑锋 " set nocom ...

  2. Activity的四大启动模式

    在自己清单中的Activity里配置这四大启动之一. stander    标准模式   先进后出 singletop     会检查栈顶如果有,那么就复用,不会重新开启. singletask    ...

  3. git中的bug分支和Feature分支

    /*游戏或者运动才能让我短暂的忘记心痛,现如今感觉学习比游戏和运动还重要——曾少锋*/ 如果对于分支还不太明白的学者.请先参考:http://www.cnblogs.com/zengsf/p/7512 ...

  4. 蓝桥杯 ALGO-2:最大最小公倍数

      算法训练 最大最小公倍数   时间限制:1.0s   内存限制:256.0MB        锦囊1 使用贪心来选择. 锦囊2 当n为奇数时,答案一定是n*(n-1)*(n-2). 当n为偶数时, ...

  5. MySQL表类型MyISAM/InnoDB的区别(解决事务不回滚的问题)(转)

    本文参考: http://mysqlpub.com/thread-5383-1-1.html http://blog.csdn.net/c466254931/article/details/53463 ...

  6. 在Spark上通过BulkLoad快速将海量数据导入到Hbase

    我们在<通过BulkLoad快速将海量数据导入到Hbase[Hadoop篇]>文中介绍了一种快速将海量数据导入Hbase的一种方法,而本文将介绍如何在Spark上使用Scala编写快速导入 ...

  7. hasura graphql server 集成gatsby

    hasura graphql server 社区基于gatsby-source-graphql 开发了gatsby-postgres-graphql 插件, 可以快速的开发丰富的网站 基本使用 安装h ...

  8. JS 网页快捷键设置

    我们希望能用快捷键代替鼠标点击做一些事情,例如一个典型的应用就是论坛上常用的Ctrl + Enter 快捷发帖子.就以Ctrl+Enter快捷发帖子为例,实质上呢,就是通过JS脚本,捕获系统的onke ...

  9. [NN] 随机VS批训练

    本文翻译节选自1998-Efficient BackProp, Yann LeCun et al.. 4.1 随机VS批训练 每一次迭代, 传统训练方式都需要遍历所有数据集来计算平均梯度. 批训练也同 ...

  10. 后台调用前台JS(查看客户端IE版本)

    1.前端代码    </form>    //注意放在form下面<script>    function readRegedit() {        var obj = n ...