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. linux 建议锁和强制锁

    作为APUE 14.3节的参考 linux是有强制锁的,但是默认不开启.想让linux支持强制性锁,不但在mount的时候需要加上-o mand,而且对要加锁的文件也需要设置相关权限. .       ...

  2. C# LINQ(5)

    目前都是说的单数据差距,如果多数据进行查询LINQ该如何呢? 那么LINQ就应该使用关键字 join on equals 现有代码: static void Main(string[] args) { ...

  3. WebJars——web端静态资源的jar包

    1.WebJars介绍 Web前端使用了越来越多的JS或CSS,如jQuery,Backbone.js和Bootstrap.一般情况下,我们是将这些Web资源拷贝到Java Web项目的webapp相 ...

  4. 第二篇 Python运算符

    1.算术运算符 运算符 描述  +  两个值相加  -  两个值相减  *  两个值相乘  /  两个值相除  %  得到两个数相除的余数  **  x**y得到x的y次幂  //  返回两个数相除商 ...

  5. Java面向对象之关键字static 入门实例

    一.基础概念 静态关键字 static 是成员修饰符,直接用于修饰成员. (一)特点: 1.被静态修饰的成果,可以直接被类名所调用. 2.静态成员优先于对象存在. 3.静态成员随着类的加载而加载.随着 ...

  6. Communication with each role instance in Azure

    Use WCF  Communication with role instance in azure 1)In worker role build WCF Service public overrid ...

  7. 实现bootstrap的dropdown-menu(下拉菜单)点击后不关闭的方法 (转)

    实现bootstrap的dropdown-menu(下拉菜单)点击后不关闭的方法 问题描述,在下拉菜单中,添加其他元素,例如,原文作者所述的<a>和我自己实际用到的<input> ...

  8. 【转】idea中applicationContext-trans.xml中的Cannot resolve bean 'dataSource'...的问题解决

    问题如下: (applicationContext-trans.xml中的部分截图) 先了解问题是怎么出现的: 此处的dataSource是在applicationContext-dao.xml中配置 ...

  9. zTree学习笔记

    一.zTree的下载 官网:http://www.treejs.cn/v3/main.php#_zTreeInfo 解压后的目录结构为: 二.zTree入门案例 2.1 在页面中引入相关文件 要使用z ...

  10. POJ_1862 Stripies 【贪心】

    一.题面 POJ1862 二.分析 反省一下,自己英语水平着实不行,该题其实就是问若给出若干个这种生物,根据这种体重变换方式,最终合并成一个后,体重最少是多少.根据公式 $m = 2\sqrt{m_{ ...