`
weitao1026
  • 浏览: 1048259 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Elasticsearch集群和索引常用命令

 
阅读更多

ES通过设置【节点的名字】和【集群的名字】,就能自动的组织相同集群名字的节点加入到集群中,并使很多的技术对用户透明化。

如果用户想要管理查看集群的状态,可以通过一些REST API来实现。

参考文档:http://www.cnblogs.com/xing901022/p/4957543.html

REST API用途

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

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

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

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

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

查看集群状态

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

curl 'localhost:9200/_cat/health?v'

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

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

得到的相应结果。

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

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

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

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

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

 

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

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

 

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

curl 'localhost:9200/_cat/nodes?v'

 

查看所有的索引

在ES中索引有两个意思:

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

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

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

curl 'localhost:9200/_cat/indices?v'

得到的结果如下:

curl 'localhost:9200/_cat/indices?v'
health index pri rep docs.count docs.deleted store.size pri.store.size

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

创建索引

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

复制代码
复制代码
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。

执行的命令如下:

curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '
{
  "name": "John Doe"
}'

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

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

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

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

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

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

复制代码
复制代码
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 为之前索引时的数据

删除索引

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

curl -XDELETE 'localhost:9200/customer?pretty'

返回结果:

{
    "acknowledged": true
}

总结

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

复制代码
复制代码
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'//删除索引


一般有这个问题应该是ES不是自己装的,如果是还不知道话建议找块豆腐~
核心思路是找到es home中的lib,其他方法欢迎指正。

补充:已经找到最简单的方法了,前提是es启动了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[hadoop@fat283-0003 ~]$ curl -XGET localhost:9200
{
  "status" : 200,
  "name" "She-Venom",
  "cluster_name" "elasticsearch",
  "version" : {
    "number" "1.7.2",
    "build_hash" "e43676b1385b8125d647f593f7202acbd816e8ec",
    "build_timestamp" "2015-09-14T09:49:53Z",
    "build_snapshot" false,
    "lucene_version" "4.10.4"
  },
  "tagline" "You Know, for Search"
}

首先看看有没有es的进程:

1
[hadoop@fat283-0002 elasticsearch]$ ps aux | grep elasticsearch

如果有的话,能看到启动es的很多目录,包括这其中的jar

1
:/usr/share/elasticsearch/lib/elasticsearch-1.7.2.jar

版本1.7.2不用想了。

如果没有进程或者jar的,可以直接找到es home path。(如果有进程,但是没有jar信息的,应该是有类似 -Des.path.home=/usr/share/elasticsearch 描述的,没有继续下一步)

1
[hadoop@fat283-0002 elasticsearch]$ sudo find / -name elasticsearch -type d

根据经验,一般会 安装/解压 在/var获得/etc目录下。当然,也可以自己试一试,查看一下每个目录下的文件,一般包含以下信息的目录就是es的home path了。

1
bin  lib  LICENSE.txt  NOTICE.txt  plugins  README.textile

剩下的就是看一下jar包了:

1
2
[hadoop@fat283-0002 elasticsearch]$ ls lib/ | grep -P 'elasticsearch-\d\.\d\.\d\.jar'
elasticsearch-1.7.2.jar
分享到:
评论

相关推荐

    elasticsearch集群安装包

    在 Elasticsearch 中,集群是一组节点(运行 Elasticsearch 的服务器),它们共同存储数据并处理搜索和索引请求。每个节点都可以连接到集群,并且通过共享相同的 `cluster.name` 配置参数来识别其所属的集群。 ### ...

    elasticsearch集群化搭建

    在实际应用中,为了提高 Elasticsearch 的稳定性和性能,通常需要搭建 Elasticsearch 集群。本文将详细介绍如何在新主机上进行 Elasticsearch 集群的简单搭建。 #### 二、环境准备 在搭建 Elasticsearch 集群之前...

    Elasticsearch集群.pdf

    在了解Elasticsearch集群的构建和配置过程中,首先需要掌握一些基础概念。Elasticsearch是一个高度可扩展的开源搜索引擎,它能够提供全文搜索功能。集群是指一组协同工作的节点,每个节点都承担着一部分数据存储和...

    ElasticSearch集群部署方式

    - **Linux系统**:修改启动脚本(位于`ElasticSearch安装目录/bin/elasticsearch`),设置`JAVA_HOME`和`ES_HEAP_SIZE`,然后通过`./elasticsearch -d`命令启动服务。关闭服务可通过`kill`命令结束进程。 #### 二、...

    ElasticSearch集群搭建.doc

    理解并正确配置索引分片对于优化Elasticsearch集群的性能和可靠性至关重要。通过合理设置分片数量、副本比例以及分配策略,可以确保在处理大量数据的同时保持高可用性和快速响应。在实际环境中,应根据数据量、预期...

    elasticsearch集群节点监控脚本异常通过mail465发送邮件通知.rar

    标签"es 集群节点监控"表明脚本专注于Elasticsearch集群的节点监控,这通常包括检查节点是否在线、是否有未分配的分片、是否达到设定的负载阈值等。例如,脚本可能会检查 `_cluster/health` API以获取整体集群的健康...

    CentOS7下Elasticsearch高可用集群方案-完整部署记录(个人珍藏版)

    每个Elasticsearch节点都是集群的一部分,可以存储数据、参与索引和搜索操作。为了实现高可用性,至少需要两个或更多的节点,它们通过网络连接并共享集群状态信息。节点之间的通信通过Transport Protocol进行,这是...

    Elasticsearch7.0备份索引脚本

    在大数据分析和日志管理领域,Elasticsearch(ES)是一个广泛使用的开源搜索引擎和分析引擎。它提供了实时、可扩展的搜索和分析功能。然而,数据的安全性和可靠性至关重要,因此定期备份Elasticsearch的索引变得非常...

    ES集群部署方案.pptx

    ES(Elasticsearch)集群部署是指将多个 ES 节点组成的集群,以提高搜索和索引的性能和可用性。下面是 ES 集群部署方案的详细解释: 集群配置 在 ES 集群中,每个节点都需要配置集群名称(cluster.name)、节点...

    Go-vulcanizer一个用于与Elasticsearch集群交互的golang库

    1. **集群健康检查**:利用Go-vulcanizer,可以实时获取集群的健康状态,包括节点的状态、索引的分配情况以及集群的整体运行状况,这对于监控和维护ES集群至关重要。 2. **数据迁移**:在扩展或调整Elasticsearch...

    Elasticsearch数据导出工具

    Elasticsearch数据导出工具是一种高效实用的解决方案,它允许用户方便地从Elasticsearch(ES)集群中抽取数据,并将其导出到不同的目标,如MySQL数据库或本地文件系统。这款工具尤其适用于需要进行数据迁移、备份或...

    elasticsearch索引插件

    总结来说,Elasticsearch索引插件,特别是像plugin-head这样的插件,对于理解和管理Elasticsearch集群非常有帮助。它们简化了操作流程,提高了工作效率,并且提供了丰富的可视化信息,便于对Elasticsearch的运行状况...

    ElasticSearch集群节点类型

    ELasticsearch的集群是由多个节点组成的,通过cluster.name设置集群名称,并且用于区分其它的集群,每个节点通过node.name指定节点的名称。 在Elasticsearch中,节点的类型主要有4种: master节点: 配置文件中node...

    elasticsearch集群安全加密插件之search-guard

    Search Guard是Elasticsearch集群安全的关键组件,通过其丰富的功能和灵活的配置,为企业级Elasticsearch环境提供了坚实的安全保障。了解并熟练掌握Search Guard的使用,对于构建安全的数据基础设施至关重要。

    cerebro elasticsearch集群管理插件

    其主要目标是提供一个易用的界面,让用户能够轻松地查看和操作Elasticsearch集群的索引、节点、文档等资源。 ### 二、Cerebro的主要功能 1. **集群管理**:Cerebro可连接到多个Elasticsearch集群,每个集群都可以...

    elasticsearch常用版本

    标题提及的"elasticsearch常用版本"意味着我们将关注几个Elasticsearch的主流版本,包括elasticsearch-2.4.4、elasticsearch-6.2.3。每个版本都有其特定的特性和改进,适应不同的需求和环境。 1. **Elasticsearch ...

Global site tag (gtag.js) - Google Analytics