前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch集群管理

Elasticsearch集群管理

作者头像
用户1154259
发布2018-01-17 16:07:17
7410
发布2018-01-17 16:07:17
举报

ES通过设置【节点的名字】和【集群的名字】,就能自动的组织相同集群名字的节点加入到集群中,并使很多的技术对用户透明化。 如果用户想要管理查看集群的状态,可以通过一些REST API来实现。 其他的ES文档翻译参考:Elasticsearch文档总结

REST API用途

ES提供了很多全面的API,大致可以分成如下几种:

1 检查集群、节点、索引的健康情况

2 管理集群、节点,索引数据、元数据

3 执行CRUD,创建、读取、更新、删除 以及 查询

4 执行高级的查询操作,比如分页、排序、脚本、聚合等

查看集群状态

可以通过CURL命令发送REST命令,查询集群的健康状态:

代码语言:javascript
复制
curl 'localhost:9200/_cat/health?v'

Localhost是主机的地址,9200是监听的端口号,ES默认监听的端口号就是9200.

这里需要注意的是,windows下安装的CURL有可能不支持单引号,如果有报错,还请改成双引号,内部使用转义字符转义。

得到的相应结果:

代码语言:javascript
复制
epoch      timestamp cluster       status node.total node.data shards pri relo init unassign
1394735289 14:28:09  elasticsearch green           1         1      0   0    0    0        0

可以看到集群的名字是默认的"elasticsearch",集群的状态时"green"。这个颜色之前也有说过:

1 绿色,最健康的状态,代表所有的分片包括备份都可用

2 黄色,基本的分片可用,但是备份不可用(也可能是没有备份)

3 红色,部分的分片可用,表明分片有一部分损坏。此时执行查询部分数据仍然可以查到,遇到这种情况,还是赶快解决比较好。

上面的结果还可以看到,目前有一个节点,但是没有分片,这是因为我们的ES中还没有数据,一次也就没有分片。

当使用elasticsearch作为集群名字时,会使用单播,查询本机上是否还运行着其他的节点。如果有,则组成一个集群。

(如果使用其他的名字作为集群名字,那么就可能采用多播了!这个在工作中,经常会遇到,大家使用的是一个集群名字,分片总是被搞在一起,导致有人的机器下线后,自己的也无法使用)

通过下面的命令,可以查询节点的列表:

代码语言:javascript
复制
curl 'localhost:9200/_cat/nodes?v'

得到的结果如下:

代码语言:javascript
复制
curl 'localhost:9200/_cat/nodes?v'
host         ip        heap.percent ram.percent load node.role master name
mwubuntu1    127.0.1.1            8           4 0.00 d         *      New Goblin

查看所有的索引

在ES中索引有两个意思:

1 动词的索引,表示把数据存储到ES中,提供搜索的过程;这期间可能正在执行一个创建搜索的过程。

2 名字的索引,它是ES中的一个存储类型,与数据库类似,内部包含type字段,type中包含各种文档。

通过下面的命令可以查看所有的索引:

代码语言:javascript
复制
curl 'localhost:9200/_cat/indices?v'

得到的结果如下:

代码语言:javascript
复制
curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted store.size pri.store.size

由于集群中没有任何的数据,上面的结果中也就只包含列的信息了。

创建索引

下面是创建索引,以及查询索引的例子:

代码语言:javascript
复制
curl -XPUT 'localhost:9200/customer?pretty'
{
  "acknowledged" : true
}

curl 'localhost:9200/_cat/indices?v'
health index    pri rep docs.count docs.deleted store.size pri.store.size
yellow customer   5   1          0            0       495b           495b

上面的结果中,customer索引的状态是yellow,这是因为此时虽然有5个主分片和一个备份。但是由于只是单个节点,我们的分片还在运行中,无法动态的修改。因此当有其他的节点加入到集群中,备份的节点会被拷贝到另一个节点中,状态就会变成green。

索引和搜索文档

之前说过,索引里面还有类型的概念,在索引文档之前要先设置类型type。

执行的命令如下:

代码语言:javascript
复制
curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '
{
  "name": "John Doe"
}'

执行成功后会得到如下的信息:

代码语言:javascript
复制
{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 1,
  "created" : true
}

注意2.0版本的ES在同一索引下,不同的类型,相同的字段名字,是不允许字段类型不一致的。

上面的例子中,为我们创建了一个文档,并且id自动设置为1.

ES不需要再索引文档前,不需要明确的创建索引,如果执行上面的命令,索引不存在,也会自动的创建索引。

执行下面的命令查询,返回信息也如下:

代码语言:javascript
复制
curl -XGET 'localhost:9200/customer/external/1?pretty'
{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 1,
  "found" : true, "_source" : { "name": "John Doe" }
}

这里会新增两个字段:

1 found 描述了请求信息

2 _source 为之前索引时的数据

删除索引

执行下面的命令就可以删除索引:

代码语言:javascript
复制
curl -XDELETE 'localhost:9200/customer?pretty'

返回结果:

代码语言:javascript
复制
{
    "acknowledged": true
}

总结

总结上面涉及到的命令大致如下:

代码语言:javascript
复制
curl -XPUT 'localhost:9200/customer'//创建索引
//插入数据
curl -XPUT 'localhost:9200/customer/external/1'-d '
{
  "name": "John Doe"
}'
curl 'localhost:9200/customer/external/1'//查询数据
curl -XDELETE 'localhost:9200/customer'//删除索引

参考

1【Elasticsearch官方文档】:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • REST API用途
  • 查看集群状态
  • 查看所有的索引
  • 创建索引
  • 索引和搜索文档
  • 删除索引
  • 总结
  • 参考
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档