首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ElasticSearch 6.x 学习笔记:35.Java API之集群管理

ElasticSearch 6.x 学习笔记:35.Java API之集群管理

作者头像
程裕强
发布于 2022-05-06 11:24:43
发布于 2022-05-06 11:24:43
26200
代码可运行
举报
运行总次数:0
代码可运行

https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.1/java-admin-cluster.html

1、ClusterAdminClient

ESUtil.java类中增加获取集群管理的ClusterAdminClient对象的方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    /**
     * 获取集群管理的ClusterAdminClient对象
     */
    public static ClusterAdminClient getClusterAdminClient(){
        return getClient().admin().cluster();
    }

2、集群健康

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package cn.hadron;

import cn.hadron.es.ESUtil;
import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
import org.elasticsearch.cluster.health.ClusterHealthStatus;
import org.elasticsearch.cluster.health.ClusterIndexHealth;

public class ClusterAdminDemo {
    public static void main(String[] args){
        ClusterHealthResponse healths = ESUtil.getClusterAdminClient().prepareHealth().get();
        String clusterName = healths.getClusterName();
        System.out.println("clusterName="+clusterName);
        int numberOfDataNodes = healths.getNumberOfDataNodes();
        System.out.println("numberOfDataNodes="+numberOfDataNodes);
        int numberOfNodes = healths.getNumberOfNodes();
        System.out.println("numberOfNodes="+numberOfNodes);

        for (ClusterIndexHealth health : healths.getIndices().values()) {
            String index = health.getIndex();
            int numberOfShards = health.getNumberOfShards();
            int numberOfReplicas = health.getNumberOfReplicas();
            System.out.printf("index=%s,numberOfShards=%d,numberOfReplicas=%d\n",index,numberOfShards,numberOfReplicas);
            ClusterHealthStatus status = health.getStatus();
            System.out.println(status.toString());
        }
    }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
clusterName=elasticsearch
numberOfDataNodes=1
numberOfNodes=1
index=mydate,numberOfShards=5,numberOfReplicas=1
YELLOW
index=website,numberOfShards=5,numberOfReplicas=1
YELLOW
index=test,numberOfShards=5,numberOfReplicas=1
YELLOW
index=my-index,numberOfShards=5,numberOfReplicas=1
YELLOW
index=book,numberOfShards=5,numberOfReplicas=1
YELLOW
index=child_example,numberOfShards=5,numberOfReplicas=1
YELLOW
index=join_index,numberOfShards=5,numberOfReplicas=1
YELLOW
index=index,numberOfShards=5,numberOfReplicas=1
YELLOW
index=blog,numberOfShards=5,numberOfReplicas=1
YELLOW
index=index_1,numberOfShards=5,numberOfReplicas=1
YELLOW
index=index_2,numberOfShards=5,numberOfReplicas=1
YELLOW
index=twitter,numberOfShards=5,numberOfReplicas=1
YELLOW
index=books,numberOfShards=5,numberOfReplicas=1
YELLOW
index=my_index,numberOfShards=5,numberOfReplicas=1
YELLOW
index=index1,numberOfShards=5,numberOfReplicas=1
YELLOW
index=logs,numberOfShards=5,numberOfReplicas=1
YELLOW

3、Wait for statusedit

You can use the cluster health API to wait for a specific status for the whole cluster or for a given index:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
client.admin().cluster().prepareHealth()            
        .setWaitForYellowStatus()                   
        .get();
client.admin().cluster().prepareHealth("company")   
        .setWaitForGreenStatus()                    
        .get();

client.admin().cluster().prepareHealth("employee")  
        .setWaitForGreenStatus()                    
        .setTimeout(TimeValue.timeValueSeconds(2))  
        .get();
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package cn.hadron;

import cn.hadron.es.ESUtil;
import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
import org.elasticsearch.cluster.health.ClusterHealthStatus;

public class ClusterAdminDemo {
    public static void main(String[] args){
        ClusterHealthResponse response=ESUtil.getClusterAdminClient()
                .prepareHealth("website")
                .setWaitForGreenStatus()
                .get();

        ClusterHealthStatus status = response.getIndices().get("website").getStatus();
        if (!status.equals(ClusterHealthStatus.GREEN)) {
            throw new RuntimeException("Index is in " + status + " state");
        }
    }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
no modules loaded
loaded plugin [org.elasticsearch.index.reindex.ReindexPlugin]
loaded plugin [org.elasticsearch.join.ParentJoinPlugin]
loaded plugin [org.elasticsearch.percolator.PercolatorPlugin]
loaded plugin [org.elasticsearch.script.mustache.MustachePlugin]
loaded plugin [org.elasticsearch.transport.Netty4Plugin]
Exception in thread "main" java.lang.RuntimeException: Index is in YELLOW state
    at cn.hadron.ClusterAdminDemo.main(ClusterAdminDemo.java:17)

Process finished with exit code 1
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ElasticSearch 6.x 学习笔记:25.Java API之索引管理
25.1 判定索引是否存在 package cn.hadron; import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsResponse; import org.elasticsearch.client.IndicesAdminClient; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.co
程裕强
2022/05/06
3740
ElasticSearch 6.x 学习笔记:25.Java API之索引管理
ElasticSearch 6.x 学习笔记:28.Java API之文档批量操作
https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.1/java-docs-multi-get.html
程裕强
2022/05/06
4860
ElasticSearch 6.x 学习笔记:28.Java API之文档批量操作
ElasticSearch 6.x 学习笔记:27.Java API之文档管理
1、文档获取 package cn.hadron; import cn.hadron.es.*; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.client.transport.TransportClient; public class GetDocDemo { public static void main(String[] args){ TransportClient clie
程裕强
2022/05/06
2340
ElasticSearch 6.x 学习笔记:27.Java API之文档管理
ElasticSearch 6.x 学习笔记:29.Java API之Match All Query
https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.1/java-query-dsl.html Elasticsearch provides a full Java query dsl in a similar manner to the REST Query DSL. The factory for query builders is QueryBuilders. Once your query is ready, you can use the Search API. Elasticsearch以类似于REST Query DSL的方式提供完整的Java查询dsl。 查询构建器的工厂是QueryBuilders。 一旦您的查询准备就绪,您可以使用搜索API。
程裕强
2022/05/06
5730
ElasticSearch 6.x 学习笔记:26.Java API之文档添加
https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.1/java-docs-index.html
程裕强
2022/05/06
2310
ElasticSearch 6.x 学习笔记:26.Java API之文档添加
ElasticSearch 6.x 学习笔记:33.Java API之指标聚合
https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.1/java-aggs.html To build aggregation requests, use AggregationBuilders helpers. Just import them in your class:
程裕强
2022/05/06
3080
ElasticSearch 6.x 学习笔记:34.Java API之桶聚合
https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.1/_bucket_aggregations.html
程裕强
2022/05/06
2890
ElasticSearch 6.x 学习笔记:30.Java API之全文查询
https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.1/java-full-text-queries.html
程裕强
2022/05/06
3680
ElasticSearch 6.x 学习笔记:30.Java API之全文查询
ElasticSearch 6.x 学习笔记:24.Java API连接Elasticsearch
https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html
程裕强
2022/05/06
3130
ElasticSearch 6.x 学习笔记:24.Java API连接Elasticsearch
聊聊springboot elasticsearch healthIndicator
本文主要研究一下springboot elasticsearch healthIndicator
code4it
2019/04/18
2.1K0
聊聊springboot elasticsearch healthIndicator
Elasticsearch-06 Spring Boot 2.0.9整合ElasticSearch5.6.16
前面几篇,学习了ES的基本操作,那我们这里集成到代码中吧。 我们这里没有使用Spring 提供的 spring-boot-starter-data-elasticsearch,使用的是ES原生的API 。
小小工匠
2021/08/17
7270
ElasticSearch 6.x 学习笔记:31.Java API之词项查询
https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.1/java-term-level-queries.html
程裕强
2022/05/06
2490
ElasticSearch 5.x Java API
该文介绍了如何使用Java API向ElasticSearch中插入数据,包括创建索引、插入文档和检索文档等功能。同时,还介绍了如何通过Maven构建ElasticSearch Java客户端,以及使用Java API进行文档检索和搜索。
程裕强
2018/01/02
1.4K0
ElasticSearch 5.x Java API
完整教程:spring-boot-starter-data-elasticsearch整合elasticsearch 6.x
大致意思:Spring boot 2的spring-boot-starter-data-elasticsearch中支持的Elasticsearch 2.X版本,需要转向spring-data-elasticsearch,
程裕强
2019/05/27
10.2K0
Elasticsearch就是这么简单
一、前言 最近有点想弄一个站内搜索的功能,之前学过了Lucene,后来又听过Solr这个名词。接着在了解全文搜索的时候就发现了Elasticsearch这个,他也是以Lucene为基础的。 我去搜了几篇Elasticsearch教程,发现很多都是基于linux的,但我linux耍得并不熟,很少用。仅仅会一些简单的命令,等真正去用到linux的时候再慢慢啃吧。 于是发现了一篇写得很好的教程: http://blog.csdn.net/laoyang360/article/details/52244917 首先
Java3y
2018/04/02
1.6K0
Elasticsearch就是这么简单
频繁产生对象造成gc时间过长案例分析
gc时间过长,平均gc pause的时间要将近4秒,有13%的gc超过10秒,太可怕了,部分gc日志如下:
code4it
2018/09/17
1.4K0
Spring Boot 中使用 Java API 调用 Elasticsearch
ElasticSearch 是一个高可用开源全文检索和分析组件。提供存储服务,搜索服务,大数据准实时分析等。一般用于提供一些提供复杂搜索的应用。 ElasticSearch 提供了一套基于restful风格的全文检索服务组件。前身是compass,直到2010被一家公司接管进行维护,开始商业化,并提供了ElasticSearch 一些相关的产品,包括大家比较熟悉的 kibana、logstash 以及 ElasticSearch 的一些组件,比如 安全组件shield 。当前最新的Elasticsearch
程序员鹏磊
2018/02/09
6.4K1
ElasticSearch 6.x 学习笔记:36.新闻搜索之Maven项目创建
1、创建Maven项目 (1)选择webapp (2)输入基本包名和项目名 (3)构建Maven项目成功 (4)编辑pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apa
程裕强
2022/05/06
4200
ElasticSearch 6.x 学习笔记:36.新闻搜索之Maven项目创建
使用Java操作Elasticsearch(Elasticsearch的java api使用)
1、Elasticsearch是基于Lucene开发的一个分布式全文检索框架,向Elasticsearch中存储和从Elasticsearch中查询,格式是json。
别先生
2019/10/23
11.6K0
使用Java操作Elasticsearch(Elasticsearch的java api使用)
springBoot Actuator 健康监测
spring boot 微服务作为一项在云中部署应用和服务的新技术是当下比较热门话题,而微服务的特点决定了功能模块的部署是分布式的,运行在不同的机器上相互通过服务调用进行交互,业务流会经过多个微服务的处理和传递,在这种框架下,微服务的监控显得尤为重要。我们知道,spring boot 在引入
chinotan
2019/04/03
3.4K0
springBoot Actuator 健康监测
推荐阅读
相关推荐
ElasticSearch 6.x 学习笔记:25.Java API之索引管理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档