`

ElasticSearch 节点管理

阅读更多
我们杀死的是主节点,一个集群必须有一个主节点才可以正常运转,所以第一个事情是:
选举一个新的主节点,比如节点2.
主分片12已经丢失,我们的索引无法正常运行因为失去了主分片,如果我们此时查看集群状况,我们会看到红色。
幸运的,之前的主分片12都在其它机器上有备份,所以,新的主节点需要做的是:让这些失去的分片的备份晋升为主分片,
这使得集群健康状态变为黄色,为什么是黄色?因为之前设置了从分片的个数不是1而是大于1.所以是黄色。这个过程是立即执行的。
 
下面解释了为啥是黄色状态不是绿色。
到了这里,你应该对es如何水平扩容有所了解,并且你的数据是安全的,后面将讲更多的细节!
http://my.oschina.net/qiangzigege/blog/264206
 
 
 在es里,所有的数据的每个域默认都被建立索引,也就是说,每个字段,有一个专门的倒排索引,用来快速检索,
并且,不像大多数数据库,es可以使用所有这些倒排索引,并且快速返回结果。
http://my.oschina.net/qiangzigege/blog/264228
 
 
 
 
大多数实体或者对象可以序列化为一个JSON对象,包含key/value.
key是一个域的名字或者属性,value就是字符串,数字,boolean,另一个对象,数组或者一些其它特定类型比如
字符串表示一个日期或者一个文档表示一个地理位置数据。
 
{
    "name":         "John Smith",
    "age":          42,
    "confirmed":    true,
    "join_date":    "2014-06-01",
    "home": {
        "lat":      51.5,
        "lon":      0.1
    },
    "accounts": [
        {
            "type": "facebook",
            "id":   "johnsmith"
        },
        {
            "type": "twitter",
            "id":   "johnsmith"
        }
    ]
}
通常,我们使用复数对象和文档,尽管如此,有一个区别,对象仅仅是一个JSON对象,比如哈希,hashmap,字典或者数组,
objects可以包含其他的objects.
 
在es里,term文档有一些特定的意义,这得参照被序列化成JSON存储在ES里的带有唯一ID的那些文档。
http://my.oschina.net/qiangzigege/blog/264232
 
 
 
一个文档不仅仅包含数据,也有元数据-关于文档的信息。三个需要的元数据元素包括:
 
_index:表示数据存在哪。
 
_type:文档表示的对象类型。
 
_id:文档的唯一标识。
 
_index:
一个索引,就像是一个关系型数据库里的数据库,我们在索引里存储数据和索引数据。
 
自然地,在es里,我们的数据存储在分片里,也索引在分片里,一个索引仅仅是一个逻辑命名空间,用来分组一个或者多个分片,
尽管如此,这都是内部细节,我们的工程不需要关注分片,工程最多需要知道,文档在索引里,es才需要关注细节。
 
我们将讨论如何创建和管理索引,但是现在我们让es自动为我们创建索引,我们需要做的是选择一个索引名字,
索引的名字必须小写,不能以下划线开始,不能包含逗号,让我们使用website作为索引名字。
 
_type
我们使用对象来表示物体,比如用户等,每个对象属于一个类,这个类表示了跟对象相关的属性和数据。
比如一个用户的对象可以包含一个名字,性别,年龄和邮箱地址。
 
在传统的数据库里,我们通常存储同类的对象在同一个表里,因为它们有共同的数据结构,基于此,在es里,我们使用同样的方式。
每个type,有自己的映射和语法定义,这些定义约束了下面的文档,所有type的文档可以存储在一个index里,但是映射规则告诉了es如何来索引每个文档。
 
我们将讨论如何描述和管理映射,但是现在,我们将依赖es来自动决定我们的文档的数据结构。
type的名字可以大小写,都可以,但是不应该以下划线开始,不能包含逗号,我们使用"user".
 
_id
id是一个字符串,和index和type关联,具备唯一性,当创建一个新的文档,你可以自己提供_id或者让es自动分配。
 
其它元数据:
有一些其它的元数据元素,后续会讨论,依赖于上面的3个元素,我们已经可以存储数据和检索了。
http://my.oschina.net/qiangzigege/blog/264239
 
 
 
 
 
 
文档被索引,存储,可以搜索,这是通过index API.
但是首先,我们需要决定文档存在哪,正如我们所讨论的,
 
使用自己的_id.
如果你的文档有天然的区别字段,比如账号等,你可以提供自己的_id.
 
PUT /{index}/{type}/{id}
{
  "field": "value",
  ...
}
比如,如果索引是website,type是blog,我们选择id为123,
 
PUT /website/blog/123
{
  "title": "My first blog entry",
  "text""Just trying this out...",
  "date""2014/01/01"
}
响应如下:
{
   "_index":    "website",
   "_type":     "blog",
   "_id":       "123",
   "_version":  1,
   "created":   true
}
响应意味着索引请求已经成功并且包含了index,type和id元数据,还有一个新的元素:_version.
 
每个文档有一个version数字,每次的改变都会反映到文档里,包含删除。
每次加1,
 
 
自增ID
如果数据没有天然ID,让ES自动生成,
格式如下:
POST /website/blog/
{
  "title": "My second blog entry",
  "text""Still trying this out...",
  "date""2014/01/01"
}
 
响应:
{
   "_index":    "website",
   "_type":     "blog",
   "_id":       "wM0OSFhDQXGZAWDf0-drSA",
   "_version":  1,
   "created":   true
}
自增的ID是22个字符长度,URL安全,base64编码的字符串。
http://my.oschina.net/qiangzigege/blog/264260
 
 
 
 
 
为了检索文档,我们使用同样的_index,_type和_id.
动作换成GET.
 
GET /website/blog/123?pretty
 
响应包含了熟悉的元数据,加上_source字段,source包含了原始的JSON对象。
{
  "_index" :   "website",
  "_type" :    "blog",
  "_id" :      "123",
  "_version" : 1,
  "found" :    true,
  "_source" :  {
      "title": "My first blog entry",
      "text""Just trying this out..."
      "date""2014/01/01"
  }
}
响应包含 {"found": true}. 意味着文档找到了,如果我们找不存在的文档,found就会为false.
另外,HTTP的响应码可能为404,而不是202,我们可以传入-i参数(curl).
 
curl -i -XGET /website/blog/124?pretty
 
HTTP/1.1 404 Not Found
Content-Type: application/json; charset=UTF-8
Content-Length: 83
 
{
  "_index" : "website",
  "_type" "blog",
  "_id" :    "124",
  "found" false
}
 
检索一个文档的一部分
默认下,响应会返回整个文档,也许你只对title字段感兴趣,可以通过_source参数来过滤。
多个字段用逗号隔开。
 
GET /website/blog/123?_source=title,text
 
响应如下:
{
  "_index" :   "website",
  "_type" :    "blog",
  "_id" :      "123",
  "_version" : 1,
  "exists" :   true,
  "_source" : {
      "title": "My first blog entry" ,
      "text""Just trying this out..."
  }
}
或许你只想要source而不要meta数据。
 
GET /website/blog/123/_source
响应如下:
{
   "title": "My first blog entry",
   "text""Just trying this out...",
   "date""2014/01/01"
}

http://my.oschina.net/qiangzigege/blog/264275

 

 

 

 

 

 

 

 

 

 

 

 

 

 

如果你想确定一个文档是否存在而不关注内容,
使用HEAD方法而不是GET,HEAD不返回内容,仅仅返回HTTP头。

curl -i -XHEAD /website/blog/123
文档存在时的响应:

HTTP/1.1 200 OK
Content-Type: text/plain; charset=UTF-8
Content-Length: 0


不存在时,返回404.

curl -i -XHEAD /website/blog/124
HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=UTF-8
Content-Length: 0

当然,现在不存在不代表之后不存在,另一个进程可能创建了。
http://my.oschina.net/qiangzigege/blog/264285
 
分享到:
评论

相关推荐

    ElasticSearch单节点部署步骤

    Elasticsearch(简称ES)是一种基于Lucene的分布式、RESTful搜索引擎,常用于大数据分析、日志收集和实时搜索等场景。在单节点部署中,我们将设置一个独立的Elasticsearch实例,适用于学习、测试或者小型应用。 **...

    ElasticSearch集群节点类型

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

    掌控集群之力:如何管理 Elasticsearch 的节点

    下面将详细介绍 Elasticsearch 节点管理的相关知识点。 #### Elasticsearch 概览 - **分布式**:Elasticsearch 能够在多台服务器上运行,支持水平扩展,轻松应对 PB 级别数据。 - **实时搜索**:具备快速响应时间...

    elasticsearch主节点搭建1

    在本文中,我们将深入探讨如何搭建Elasticsearch的主节点,以及与之相关的配置和依赖。Elasticsearch是一个分布式、开源的搜索和分析引擎,常用于实时数据分析和大规模日志处理。在这个场景中,我们专注于搭建一个由...

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

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

    谷歌浏览器elasticsearch head插件

    开发者们开发了各种可视化工具,其中“Elasticsearch Head”就是一款非常实用的插件,它专为谷歌浏览器设计,提供了一个直观的用户界面,让用户能够轻松监控和管理Elasticsearch节点。 **一、Elasticsearch Head...

    elasticsearch服务器安装包

    2. **下载安装包**:这里的"es安装包"即为Elasticsearch的安装文件,通常是一个zip或tar.gz格式的压缩包。你需要从官方网站或者镜像站点下载对应版本的安装包,确保与你的系统兼容。 3. **解压安装**:下载完成后,...

    Elastic Search搭建使用教程.pdf(内含ElasticSearch教程权威指南)

    Index是Elasticsearch中管理数据的顶层单位,相当于数据库中的表,数据以JSON格式存储在Document中。Document是Index中的单条记录,可以有不同的结构,但为了搜索效率最好使用相同的数据结构。Type在Elasticsearch...

    ElasticSearch客户端工具

    ElasticSearch客户端工具是用于管理和操作Elasticsearch(ES)集群的重要软件,它们提供了一种直观、高效的方式来查看和管理ES集群的状态、索引、文档以及执行查询和分析任务。这些工具极大地简化了对Elasticsearch...

    Elasticsearch-head谷歌插件谷歌插件.zip

    它提供了直观的用户界面,帮助用户查看索引、节点、文档等信息,执行搜索、分页、排序等操作,大大简化了Elasticsearch的日常管理工作。Elasticsearch-head插件无需安装额外服务器,只需将其导入Elasticsearch集群,...

    Elasticsearch 开机自启脚本

    `start` 用于启动Elasticsearch,这里使用 `su` 命令切换到指定的Elasticsearch用户(例如 `es-admin`),然后进入Elasticsearch的安装目录并执行 `bin/elasticsearch` 文件以后台模式启动服务。`stop` 通过查找并杀...

    elasticsearch-head 可视化界面

    Elasticsearch-Head是一款专为Elasticsearch设计的开源可视化管理工具,它极大地简化了Elasticsearch集群的管理和监控工作。这款插件提供了一个直观、友好的用户界面,使得用户无需编写复杂的查询语句就能对ES进行...

    elasticsearch1.5.2带head插件

    Elasticsearch-Head 是一个非常实用的管理界面插件,专为 Elasticsearch 设计。它允许用户通过浏览器直观地查看和管理集群的状态、节点信息、索引、文档以及执行搜索操作。在 `elasticsearch-head-master` 文件中,...

    elasticsearch-6.8.18.rar(elasticsearch-6.8.18.zip)

    1. 分布式特性:Elasticsearch设计的核心就是分布式,它可以将数据分布在多个节点上,实现自动的故障转移和负载均衡。这使得Elasticsearch能够处理大规模的数据,并保持高可用性。 2. RESTful API:Elasticsearch...

    ES查询客户端,elasticsearch可视化工具 elasticsearch查询客户端

    Elasticsearch(简称ES)是一款强大的开源搜索引擎,广泛应用于数据检索、分析和管理。作为分布式、RESTful风格的搜索和数据分析引擎,Elasticsearch能够提供实时、高可用性以及可扩展的搜索功能。在进行日常的数据...

    Chrome浏览器查看elasticsearch head插件

    标题"Chrome浏览器查看elasticsearch head插件"指的是在Google Chrome浏览器上使用一个名为"head"的插件来查看和管理Elasticsearch(ES)集群。Elasticsearch是一个流行的开源搜索引擎和数据分析工具,而"head"插件...

    elasticsearch-7.12.1_Windows 客户端 + cerebro

    总的来说,Elasticsearch 7.12.1 for Windows客户端配合Cerebro,为Windows用户提供了一个强大且易用的搜索和分析解决方案,使得在本地环境中管理和操作Elasticsearch变得更加便捷。无论是开发人员进行测试,还是...

    ranger-2.1.0-elasticsearch-plugin.tar.gz

    - 在Ranger Admin界面创建新的服务定义,选择Elasticsearch类型,并配置相关参数,如Elasticsearch节点地址。 - 定义策略:在Ranger界面创建权限策略,设定用户或用户组对Elasticsearch索引、文档、字段的访问权限。...

    elasticsearch常用版本

    Elasticsearch是一款强大的开源搜索引擎,广泛应用于大数据分析和实时搜索领域。它基于Lucene库,提供了分布式、全文检索、近实时...在实际使用中,确保正确配置和管理Elasticsearch实例,是实现高效搜索和分析的关键。

    elasticsearch7.17.10-最新支持Java1.8版本

    1. **分布式特性**:Elasticsearch是一个分布式文档数据库,它可以将数据分散在多个节点上,提供高可用性和容错能力。每个节点都可以存储、搜索和路由数据,通过Sharding和Replication确保数据的安全和性能。 2. **...

Global site tag (gtag.js) - Google Analytics