8.1 Elasticsearch时光机

Elasticsearch的快照,防止出错,灾备
8.1.1 创建快照存储库
创建快照之前必须建一个存储库,有如下几个方面,name,type,settings,其中type是存储库的类型,分为共享文件系统中的存储库FS以

及通过url访问的只读存储库url,给出了创建文件系统存储库的命令以及常用的一些操作命令
8.1.2 创建快照
给出了创建快照的命令,给出了一些额外参数配置的示例,需要注意的是快照的名字的唯一性,并且快照可以仅复制新的信息
8.1.3 还原快照
给出了查看所有快照,以及还原某个快照的具体命令,如果索引已经存在并且未关闭,可以还原某些索引
8.1.4 清理:删除旧的快照
给出了从快照库删除快照的命令

8.2 监控集群的状态和健康度

8.2.1 集群健康度api
curl 'localhost:9200/_cluster/health?pretty' 查看集群的健康
当Elasticsearch可以根据配置分配所有分片和副本时,集群才是全面运作,处于green状态
主分片已经分配,已经转备好处理请求,但是部分或者所有的副本还没有,处于yellow状态
至少一个主分片还没有分配,集群没有转备好,如果查询可能返回错误或者不完整的结果,这是处于red状态
还可以检查索引的健康状态
控制信息细节:允许设置一个level参数,可设置为cluster,indices或者shards这样可以查看细节
额外的参数:还可以设置timeout,wait_fro_status等参数
运用以上的一个完整的命令:
curl 'localhost:9200/_cluster/health?wait_for_status=green&wait_for_nodes=>=3&timeout=100s'
8.2.2 索引统计API
使用_stats可以得到索引的信息,如curl 'localhost:9200/library,map/_stats?pretty'
docs:显示索引文档的信息,有count和delete字段,delete不会立刻删除,只会在段合并的时候被删除
store:主要是关于索引的大小信息
indexing、get、search:索引删除操作,实时的get和搜索的信息,可以看到各类的请求花费的总时间等信息
额外信息:还提供了merges,refresh,flush等信息
8.2.3 状态API
另一个得到关于索引信息的方法是使用_status断点的状态API,返回的信息描述了可用的分片以及其他的信息
8.2.4 节点信息API
提供了集群中节点的信息,需要发送请求到_nodes端点,可通过node名,node标识符,ip地址,Elasticsearch配置参数等查看信息,给出

了使用的例子
8.2.5 节点统计API
类似于节点信息API,但是节点信息API提供环境信息,而节点统计API告诉我们集群工作时发生过什么,应发送命令到/_nodes/stats端点
返回的信息有indices,os,process,jvm,network,transport,http,fs,thread_pool,breaker等信息,给出了例子
8.2.6 集群状态API
获取整个集群的状态curl 'localhost:9200/_cluster/state?pretty',也可以只是查看特定的索引节点信息
8.2.7 挂起任务API
允许控制哪些任务在等待执行,为了获取这个信息,需要发送请求到/_cluster/pending_tasks端点
8.2.8 索引段API
发送到/_segments端点的Lucene段API,提供的信息包括分片以及分片的布局信息
8.2.9 cat API
使用_cat可以使返回的信息更加的友好,后面可以跟aliases,allocation,count,health,indices,master,nodes,pending_tasks,

recovery,thread_pool,shards等信息

8.3 控制集群的再平衡

Elasticsearch把分片和副本在急群众均衡分部,但是有时候想控制这种行为
8.3.1 再平衡
集群发生变化时,或者Elasticsearch认为需要再平衡时,会尽量对集群进行再平衡
8.3.2 集群的就绪
一旦达到黄色的健康状态时,可以认为集群就已经就绪了
8.3.3 集群在平衡设置
允许控制再平衡过程,通过设置Elasticsearch.yml文件中的几个属性就可以
控制再平衡何时开始:cluster.routing.allocation.allow_revalance属性可以指定再平衡何时开始
控制同时在节点中移动的分片数量:默认值为2
控制单个节点上同时初始化的分片数量:可设置节点上一次课初始化多少分片,默认值为2
控制单个节点上同时初始化的主分片数:控制单个节点上一次可以初始化多少主分片
控制分配的分片类型:使用cluster.routing.allocation.enable属性,可允许分配哪种类型的分片
控制单个节点上的并发流数目:允许控制一个节点上一次可以打开多少流,默认为3

8.4 控制分片和副本的分配

8.4.1 显示控制分配
控制把索引放置在不同的集群节点上,可以控制
指定节点参数:把节点分为不同的区
配置:在节点1和节点2,较强节点的yml配置中添加node.zone:zone_one属性,3和4添加zone_two属性
索引的创建:可以指定某个索引放在某个区或者某个节点上,给出了例子
排除节点的分配:使用index.routing.allocation.exclude.zone可以排除某个区域
节点需求属性:除了节点的包含和排除外,还可以指定分片必须匹配某种规则才能分配到给定的节点上
使用ip地址分配分片:比如把某个索引放在固定的ip上面,给出了例子
基于此盘的分片分配:基于节点的磁盘使用情况设置分配规则
启用基于此盘的分片分配:通过设置cluster.routing.allocation.disk.threshold_enable属性为true来启用基于磁盘的分配
配置基于此盘的分片分配:可以配置一定的参数,例如时间间隔,磁盘空间超过多少不分配,或者什么时候重新分配等
8.4.2 集群范围的分配
发送到_cluster/settings端点而不是index_name/_settings端点来分配所有的索引在什么ip
8.4.3 每个节点上的喷片和副本数量
可以指定单一节点上为单一索引最多可以放置多少分片,给出了例子
8.4.4 手动移动分片和副本
把分片从一个节点移到另一个节点,取消分片的分配,强制分片的分配
移动分片:使用move命令可以将制定的index以及制定的shard分片从一个节点移到另一个节点
取消分片的分配:如果想取消正在进行的分配过程,可以使用cancel命令,指定想取消分片的索引,节点和分片,给出了某个节点上某个索

引编号的分配取消的例子
强制分片的分配:分配一个未分配的分片到指定节点上
每个http请求多个命令:可以在一个http请求中包含多个命令,例如移动或者取消等

8.5 预热

Elasticsearch允许为类型和索引定义预热查询
8.5.1 定义一个新的预热查询
跟普通的查询没什么不同,只是存储在特殊的名为_warm的索引中,给出了对于index的预热,以及index/type的预热例子,允许ES和操作系

用缓存数据
8.5.2 获取定义的预热查询
可以根据名字得到定义的预热,或者获取某个索引和类型的所有预热
8.5.3 删除一个预热查询
根据名字删除预热,或者根据索引类型来删除预热
8.5.4 禁用预热功能
可以在yml里面设置为false或者直接使用reset api来设置,给出了例子
8.5.5 查询的选择
选择执行起来昂贵的和需要填充缓存的查询执行预热

8.6 使用索引别名来简化你的日常工作

使用别名可以使用一个名字跟多个索引打交道,就像使用一个索引一样
8.6.1 别名
索引别名是一个或多个索引的一个附加名称,一个别名可以对应多个索引,但是不能使用多个索引的别名来进行索引或者实时的get草错,

如果这样会出错
8.6.2 创建别名
给出了创建别名的资历,在_aliases端点上执行http post方法就可以
8.6.3 修改别名
可以使用remove从别名中移除指定的索引,给出了例子
curl -XPOST ‘localhost:9200/_aliases’ -d '{"actions":[{"remove":{"index":"day9","alias":"week12"}}]}'
将day9的索引从week12中移除
8.6.4 合并命令
可以将remove以及add在一个命令中发送
8.6.5 获取所有别名
可以获取某个索引的别名,或者某个ip节点上所有的别名,给出了例子
8.6.6 移除别名
从一个端点移除一个别名
curl -xdelete localhost:9200/data/_alias/client从data索引移除client别名
8.6.7 别名中的过滤
别名类似视图一样,可以使用完整的DSL来查询,给出了一个过滤的例子
8.6.8 别名和路由
创建别名的时候可以指定搜索路径以及索引路径,给出了一个例子

8.7 Elasticsearch插件

8.7.1 基础知识
ES插件按照内容分类两类,java插件以及站点插件,站点插件位于plugin目录下,java插件位于site目录下,区别两者的就是是否包含.jar

文件
8.7.2 安装插件
给出了从网上下载插件,如果网上找不到使用maven central、maven sonatype、github等库,同样允许自己编写的插件,给出了简单的例


8.7.3 移除插件

使用简单的命令来移除插件,例如移除river-mongodb插件可以执行 bin/plugin -remove river-mongodb插件即可

8.8 更新设置API

虽然yml可以指定各种参数调优,但是最好在api来设置修改,有两种方法设置属性,一种是瞬时设置,一种是永久设置,给出了例子

更多:http://blog.csdn.net/molong1208?viewmode=contents

【Elasticsearch】集群管理的更多相关文章

  1. elasticsearch集群管理工具head插件(转)

    elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es 插件安装方法1: 1.elasticsearc ...

  2. Elasticsearch集群管理工具head插件安装

    Elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es.或直接下载源码,在本地打开index.html ...

  3. Elasticsearch集群 管理

    第7章 深入Elasticsearch集群 启动一个Elasticsearch节点时,该节点会开始寻找具有相同集群名字并且可见的主节点.如 果找到主节点,该节点加入一个已经组成了的集群:如果没有找到, ...

  4. elasticsearch 集群管理(集群规划、集群搭建、集群管理)

    一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...

  5. Elasticsearch集群管理

    ES通过设置[节点的名字]和[集群的名字],就能自动的组织相同集群名字的节点加入到集群中,并使很多的技术对用户透明化. 如果用户想要管理查看集群的状态,可以通过一些REST API来实现. 其他的ES ...

  6. 大规模Elasticsearch集群管理心得

    转载:http://elasticsearch.cn/article/110 ElasticSearch目前在互联网公司主要用于两种应用场景,其一是用于构建业务的搜索功能模块且多是垂直领域的搜索,数据 ...

  7. Elasticsearch集群管理之添加、删除节点

    1.问题抛出 1.1 新增节点问题 我的群集具有黄色运行状况,因为它只有一个节点,因此副本保持未分配状态,我想要添加一个节点,该怎么弄? 1.2 删除节点问题 假设集群中有5个节点,我必须在运行时删除 ...

  8. elasticsearch系列八:ES 集群管理(集群规划、集群搭建、集群管理)

    一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...

  9. 数据源管理 | 搜索引擎框架,ElasticSearch集群模式

    本文源码:GitHub·点这里 || GitEE·点这里 一.集群环境搭建 1.环境概览 ES版本6.3.2,集群名称esmaster,虚拟机centos7. 服务群 角色划分 说明 en-maste ...

  10. 我的ElasticSearch集群部署总结--大数据搜索引擎你不得不知

    摘要:世上有三类书籍:1.介绍知识,2.阐述理论,3.工具书:世间也存在两类知识:1.技术,2.思想.以下是我在部署ElasticSearch集群时的经验总结,它们大体属于第一类知识“techknow ...

随机推荐

  1. iOS No suitable application records were found. Verify your bundle identifier 'xxx' is correct.

    1.错误提示 打包工程,Validate 的时候提示: No suitable application records were found. Verify your bundle identifie ...

  2. A - 活动安排问题(贪心)

    A - 活动安排问题 有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室?  Input第一行一个正整数n (n <= ...

  3. pycharm自动调整html页面代码缩进不正确的解决办法

    pycharm自动调整html页面代码缩进不正确的解决办法

  4. Ubuntu 安装后的配置及美化(一)

    Ubuntu 安装后的配置及美化(一) 记录一下 完成后的主界面. 配置 1.更新源为阿里云 找到 软件和更新 选项,更新源为阿里云的源. 在 其他软件 中将 Canonical合作伙伴 打上勾. 然 ...

  5. [51nod]1229 序列求和 V2(数学+拉格朗日差值)

    题面 传送门 题解 这种颓柿子的题我可能死活做不出来-- 首先\(r=0\)--算了不说了,\(r=1\)就是个裸的自然数幂次和直接爱怎么搞怎么搞了,所以以下都假设\(r>1\) 设 \[s_p ...

  6. redis源码分析(3)sds

    sds是redis中用来处理字符串的数据结构.sds的定义在sds.h中: typedef char *sds; 简洁明了!简明扼要!(X,玩我呢是吧!这特么不就是c中的字符串么?!).像redis这 ...

  7. 4.jQuery和DOM 对象之间的相互转换

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  8. iframe里面的元素触发父窗口元素事件的jquery代码 转

    例如父窗口定义了一个事件. top: $(dom1).bind('topEvent', function(){}); 那么iframe里面的元素怎样触发父窗口dom1的事件呢?这样吗? $(dom1, ...

  9. explian执行计划

    MySQL为我们提供了 explain 关键字来直观的查看一条SQL的执行计划. explain显示了MySQL如何使用索引来处理select语句以及连接表,可以帮助选择更好的索引和写出更优化的查询语 ...

  10. In linux shell, How to cp/rm files by time?

    find /path/to/folder/ -mtime 1 -exec rm {} \; // Deletes all Files modified yesterday