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 的服务器),它们共同存储数据并处理搜索和索引请求。每个节点都可以连接到集群,并且通过共享相同的 `cluster.name` 配置参数来识别其所属的集群。 ### ...
在实际应用中,为了提高 Elasticsearch 的稳定性和性能,通常需要搭建 Elasticsearch 集群。本文将详细介绍如何在新主机上进行 Elasticsearch 集群的简单搭建。 #### 二、环境准备 在搭建 Elasticsearch 集群之前...
在了解Elasticsearch集群的构建和配置过程中,首先需要掌握一些基础概念。Elasticsearch是一个高度可扩展的开源搜索引擎,它能够提供全文搜索功能。集群是指一组协同工作的节点,每个节点都承担着一部分数据存储和...
- **Linux系统**:修改启动脚本(位于`ElasticSearch安装目录/bin/elasticsearch`),设置`JAVA_HOME`和`ES_HEAP_SIZE`,然后通过`./elasticsearch -d`命令启动服务。关闭服务可通过`kill`命令结束进程。 #### 二、...
理解并正确配置索引分片对于优化Elasticsearch集群的性能和可靠性至关重要。通过合理设置分片数量、副本比例以及分配策略,可以确保在处理大量数据的同时保持高可用性和快速响应。在实际环境中,应根据数据量、预期...
标签"es 集群节点监控"表明脚本专注于Elasticsearch集群的节点监控,这通常包括检查节点是否在线、是否有未分配的分片、是否达到设定的负载阈值等。例如,脚本可能会检查 `_cluster/health` API以获取整体集群的健康...
每个Elasticsearch节点都是集群的一部分,可以存储数据、参与索引和搜索操作。为了实现高可用性,至少需要两个或更多的节点,它们通过网络连接并共享集群状态信息。节点之间的通信通过Transport Protocol进行,这是...
在大数据分析和日志管理领域,Elasticsearch(ES)是一个广泛使用的开源搜索引擎和分析引擎。它提供了实时、可扩展的搜索和分析功能。然而,数据的安全性和可靠性至关重要,因此定期备份Elasticsearch的索引变得非常...
ES(Elasticsearch)集群部署是指将多个 ES 节点组成的集群,以提高搜索和索引的性能和可用性。下面是 ES 集群部署方案的详细解释: 集群配置 在 ES 集群中,每个节点都需要配置集群名称(cluster.name)、节点...
1. **集群健康检查**:利用Go-vulcanizer,可以实时获取集群的健康状态,包括节点的状态、索引的分配情况以及集群的整体运行状况,这对于监控和维护ES集群至关重要。 2. **数据迁移**:在扩展或调整Elasticsearch...
Elasticsearch数据导出工具是一种高效实用的解决方案,它允许用户方便地从Elasticsearch(ES)集群中抽取数据,并将其导出到不同的目标,如MySQL数据库或本地文件系统。这款工具尤其适用于需要进行数据迁移、备份或...
总结来说,Elasticsearch索引插件,特别是像plugin-head这样的插件,对于理解和管理Elasticsearch集群非常有帮助。它们简化了操作流程,提高了工作效率,并且提供了丰富的可视化信息,便于对Elasticsearch的运行状况...
ELasticsearch的集群是由多个节点组成的,通过cluster.name设置集群名称,并且用于区分其它的集群,每个节点通过node.name指定节点的名称。 在Elasticsearch中,节点的类型主要有4种: master节点: 配置文件中node...
Search Guard是Elasticsearch集群安全的关键组件,通过其丰富的功能和灵活的配置,为企业级Elasticsearch环境提供了坚实的安全保障。了解并熟练掌握Search Guard的使用,对于构建安全的数据基础设施至关重要。
其主要目标是提供一个易用的界面,让用户能够轻松地查看和操作Elasticsearch集群的索引、节点、文档等资源。 ### 二、Cerebro的主要功能 1. **集群管理**:Cerebro可连接到多个Elasticsearch集群,每个集群都可以...
标题提及的"elasticsearch常用版本"意味着我们将关注几个Elasticsearch的主流版本,包括elasticsearch-2.4.4、elasticsearch-6.2.3。每个版本都有其特定的特性和改进,适应不同的需求和环境。 1. **Elasticsearch ...