Java连接Elasticsearch集群
package cn.test; import java.net.InetAddress;
import java.net.UnknownHostException; import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchType;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
public class ElkTest {
// private static final String CLUSTER_NAME = "cluster_name";
public static final String CLUSTER_NAME = "elasticsearch"; //实例名称
private static final String IP = "127.0.0.1";
//private static final String IP = "192.168.0.29";
private static final int PORT = 9300; //端口
//1.设置集群名称:默认是elasticsearch,并设置client.transport.sniff为true,使客户端嗅探整个集群状态,把集群中的其他机器IP加入到客户端中
/*
//对ES1.6有效
private static Settings settings = ImmutableSettings
.settingsBuilder()
.put("cluster.name",CLUSTER_NAME)
.put("client.transport.sniff", true)
.build();
*/
//对ES2.0有效
private static Settings settings = Settings
.settingsBuilder()
.put("cluster.name",CLUSTER_NAME)
.put("client.transport.sniff", true)
.build();
//创建私有对象
private static TransportClient client; //反射机制创建单例的TransportClient对象 ES1.6版本
// static {
// try {
// Class<?> clazz = Class.forName(TransportClient.class.getName());
// Constructor<?> constructor = clazz.getDeclaredConstructor(Settings.class);
// constructor.setAccessible(true);
// client = (TransportClient) constructor.newInstance(settings);
// client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(IP), PORT));
// } catch (Exception e) {
// e.printStackTrace();
// }
// } //ES2.0版本
static {
try {
client = TransportClient.builder().settings(settings).build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(IP), PORT));
} catch (UnknownHostException e) {
e.printStackTrace();
}
} //取得实例
public static synchronized TransportClient getTransportClient(){
return client;
} //为集群添加新的节点
public static synchronized void addNode(String name){
try {
client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(name),9300));
} catch (UnknownHostException e) {
e.printStackTrace();
}
} //删除集群中的某个节点
public static synchronized void removeNode(String name){
try {
client.removeTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(name),9300));
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
public static void main(String args[]){
String index="logstash-2016.02.16";
String type="logs";
SearchResponse response=ElkTest.getTransportClient().prepareSearch(index)//设置要查询的索引(index)
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setTypes(type)//设置type, 这个在建立索引的时候同时设置了, 或者可以使用head工具查看
.setQuery(QueryBuilders.matchQuery("message", "Accept")) //在这里"message"是要查询的field,"Accept"是要查询的内容
.setFrom(0)
.setSize(10)
.setExplain(true)
.execute()
.actionGet();
for(SearchHit hit:response.getHits()){
System.out.println(hit.getSourceAsString());
}
}
}
Java连接Elasticsearch集群的更多相关文章
- ElasticSearch(四):使用Java连接ElasticSearch集群
public class ESIndexMapping { private static String host="192.168.56.3"; // 服务器地址 private ...
- kibana连接elasticsearch集群做负载均衡
问题背景: 在ELK架构中,kibana一般配置连接elasticsearch的时候,配置文件中的写法一般如下: ……# The URL of the Elasticsearch instance t ...
- Java 连接MongoDB集群的几种方式
先决条件 先运行mongodb肯定是必须的,然后导入以下包: import com.mongodb.MongoClient; import com.mongodb.MongoClientURI; im ...
- Java连接redis集群操作存储、删除以及获取值
pom文件添加: <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> &l ...
- java 连接 redis集群时报错:Could not get a resource from the pool
由于弄这个的时候浪费了太多的时间,所以才记录下这个错,给大伙参考下 检查了一下,配置啥的都没问题的,但在redis集群机器上就可以,错误如下: Exception in thread "ma ...
- ElasticSearch(八):springboot集成ElasticSearch集群并使用
1. 集群的搭建 见:ElasticSearch(七) 2. springboot配置集群 2.1 创建springboot项目,使用idea创建,不过多介绍(创建项目时候建议不要勾选elastics ...
- Elasticsearch集群搭建及使用Java客户端对数据存储和查询
本次博文发两块,前部分是怎样搭建一个Elastic集群,后半部分是基于Java对数据进行写入和聚合统计. 一.Elastic集群搭建 1. 环境准备. 该集群环境基于VMware虚拟机.CentOS ...
- 实战之elasticsearch集群及filebeat server和logstash server
author:JevonWei 版权声明:原创作品 实战之elasticsearch集群及filebeat server和logstash server 环境 elasticsearch集群节点环境为 ...
- Elasticsearch 集群和索引健康状态及常见错误说明
之前在IDC机房线上环境部署了一套ELK日志集中分析系统, 这里简单总结下ELK中Elasticsearch健康状态相关问题, Elasticsearch的索引状态和集群状态传达着不同的意思. 一. ...
随机推荐
- This task is currently locked by a running workflow and cannot be edited
转自:http://geek.hubkey.com/2007/09/locked-workflow.html 转自:http://blogs.code-counsel.net/Wouter/Lists ...
- 如何发布得到.ipa文件
第一个方法: 如果都有证书的话,并且又不想把别人的机器添加到测试设备中,或者感觉获取UDID麻烦的话,那么就可以采用该方法了. 直接Archive应用程序: 右键显示包内容到product下复制里面的 ...
- 【读书笔记】iOS-AppKit简介
一,IBOutlet和IBAction.它们实际上只是AppKit提供的#defines.IBOutlet的含义没有任何作用,因此将不对对它时行编译.IBAction定义为void,这意味着在AppC ...
- 【改】IOS-百度地图API用点生成线路、导航、自定义标注 2013年11月更新
IOS百度地图API开发自定义气泡,点击气泡自动生成路线,以及拖拽IOS百度地图开发POISearch搜索附近停车场,附近加油站IOS百度地图视角跳到用户当前位置IOS百度地图开发实时路况IOS开发百 ...
- 转载:sql关联查询
inner join(等值连接)只返回两个表中联结字段相等的行 left join(左联接)返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接)返回包括右表中的所有记录和 ...
- IOS之UI -- UITableView -- 2 -- 等高的Cell
内容大纲: 1.纯代码 添加子控件 2.Autolayout纯代码 -- Masonry框架的使用 3.自定义等高的cell -- storyboard的使用(更加简单) 4.静态cell 等高的Ce ...
- Effective Java 35 Prefer annotations to naming patterns
Disadvantages of naming patterns Typographical errors may result in silent failures. There is no way ...
- 【转】JAVA CAS原理深度分析
java.util.concurrent包完全建立在CAS之上的,没有CAS就不会有此包.可见CAS的重要性. CAS CAS:Compare and Swap, 翻译成比较并交换. java.uti ...
- linux: 获取监听指定端口的进程PID
在 linux 下经常需要杀死(重启)监听某端口的进程, 因此就写了一个小脚本, 通过 ss 命令获取监听制定端口的进程 PID, 然后通过 kill 命令结束掉进程: #!/bin/sh # set ...
- TEZ安装试用
下载地址:http://pan.baidu.com/s/1ZNpyI 第一次使用maven编译 tez的时候到tez ui部分报错,google后发现有人遇到类似问题是因为maven版本的问题, 当时 ...