您的位置:首页 > 编程语言 > Java开发

Elasticsearch java API (27)集群管理

2016-07-04 14:45 573 查看


集群管理编辑

访问集群Java API,您需要调用
 cluster()
方法从一个
 AdminClient
:
ClusterAdminClient clusterAdminClient = client.admin().cluster();


在本指南中,我们将使用
 client.admin().cluster()
.


集群的健康编辑


健康编辑

集群健康API允许获得一个非常简单的集群的健康状态,也可以给你一些技术信息集群状态每指数:
ClusterHealthResponse healths = client.admin().cluster().prepareHealth().get(); //1
String clusterName = healths.getClusterName(); //2
int numberOfDataNodes = healths.getNumberOfDataNodes(); //3
int numberOfNodes = healths.getNumberOfNodes(); //4

for (ClusterIndexHealth health : healths) { //5
String index = health.getIndex(); //6
int numberOfShards = health.getNumberOfShards(); //7
int numberOfReplicas = health.getNumberOfReplicas(); //8
ClusterHealthStatus status = health.getStatus(); //9
}



所有指标的获得信息


访问集群名称


数据节点的总数


得到节点的总数


遍历所有指标


索引名称


碎片的数量


数量的副本


指数状态


等待状态编辑

您可以使用集群健康API来等待一个特定的状态对整个集群或对于一个给定的指标:

client.admin().cluster().prepareHealth()       //1
.setWaitForYellowStatus()                 //2
.get();
client.admin().cluster().prepareHealth("company")   //3
.setWaitForGreenStatus()                    //4
.get();

client.admin().cluster().prepareHealth("employee")  //5
.setWaitForGreenStatus()                    //6
.setTimeout(TimeValue.timeValueSeconds(2))  //7
.get();




准备一个健康要求


等待集群是黄色的


准备健康指数的请求
 company



等待被绿色的指数


准备健康指数的请求
 employee



等待被绿色的指数


最多等待2秒
如果该指数没有预期的状态和你想失败在这种情况下,您需要显式地解释结果:
ClusterHealthResponse response = client.admin().cluster().prepareHealth("company")
.setWaitForGreenStatus()    //1
.get();

ClusterHealthStatus status = response.getIndices().get("company").getStatus();
if (!status.equals(ClusterHealthStatus.GREEN)) {
throw new RuntimeException("Index is in " + status + " state"); //2
}



等待被绿色的指数


如果不抛出异常
 GREEN

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息