【Elasticsearch】集群管理
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】集群管理的更多相关文章
- elasticsearch集群管理工具head插件(转)
elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es 插件安装方法1: 1.elasticsearc ...
- Elasticsearch集群管理工具head插件安装
Elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es.或直接下载源码,在本地打开index.html ...
- Elasticsearch集群 管理
第7章 深入Elasticsearch集群 启动一个Elasticsearch节点时,该节点会开始寻找具有相同集群名字并且可见的主节点.如 果找到主节点,该节点加入一个已经组成了的集群:如果没有找到, ...
- elasticsearch 集群管理(集群规划、集群搭建、集群管理)
一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...
- Elasticsearch集群管理
ES通过设置[节点的名字]和[集群的名字],就能自动的组织相同集群名字的节点加入到集群中,并使很多的技术对用户透明化. 如果用户想要管理查看集群的状态,可以通过一些REST API来实现. 其他的ES ...
- 大规模Elasticsearch集群管理心得
转载:http://elasticsearch.cn/article/110 ElasticSearch目前在互联网公司主要用于两种应用场景,其一是用于构建业务的搜索功能模块且多是垂直领域的搜索,数据 ...
- Elasticsearch集群管理之添加、删除节点
1.问题抛出 1.1 新增节点问题 我的群集具有黄色运行状况,因为它只有一个节点,因此副本保持未分配状态,我想要添加一个节点,该怎么弄? 1.2 删除节点问题 假设集群中有5个节点,我必须在运行时删除 ...
- elasticsearch系列八:ES 集群管理(集群规划、集群搭建、集群管理)
一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...
- 数据源管理 | 搜索引擎框架,ElasticSearch集群模式
本文源码:GitHub·点这里 || GitEE·点这里 一.集群环境搭建 1.环境概览 ES版本6.3.2,集群名称esmaster,虚拟机centos7. 服务群 角色划分 说明 en-maste ...
- 我的ElasticSearch集群部署总结--大数据搜索引擎你不得不知
摘要:世上有三类书籍:1.介绍知识,2.阐述理论,3.工具书:世间也存在两类知识:1.技术,2.思想.以下是我在部署ElasticSearch集群时的经验总结,它们大体属于第一类知识“techknow ...
随机推荐
- linux 建议锁和强制锁
作为APUE 14.3节的参考 linux是有强制锁的,但是默认不开启.想让linux支持强制性锁,不但在mount的时候需要加上-o mand,而且对要加锁的文件也需要设置相关权限. . ...
- C# LINQ(5)
目前都是说的单数据差距,如果多数据进行查询LINQ该如何呢? 那么LINQ就应该使用关键字 join on equals 现有代码: static void Main(string[] args) { ...
- WebJars——web端静态资源的jar包
1.WebJars介绍 Web前端使用了越来越多的JS或CSS,如jQuery,Backbone.js和Bootstrap.一般情况下,我们是将这些Web资源拷贝到Java Web项目的webapp相 ...
- 第二篇 Python运算符
1.算术运算符 运算符 描述 + 两个值相加 - 两个值相减 * 两个值相乘 / 两个值相除 % 得到两个数相除的余数 ** x**y得到x的y次幂 // 返回两个数相除商 ...
- Java面向对象之关键字static 入门实例
一.基础概念 静态关键字 static 是成员修饰符,直接用于修饰成员. (一)特点: 1.被静态修饰的成果,可以直接被类名所调用. 2.静态成员优先于对象存在. 3.静态成员随着类的加载而加载.随着 ...
- Communication with each role instance in Azure
Use WCF Communication with role instance in azure 1)In worker role build WCF Service public overrid ...
- 实现bootstrap的dropdown-menu(下拉菜单)点击后不关闭的方法 (转)
实现bootstrap的dropdown-menu(下拉菜单)点击后不关闭的方法 问题描述,在下拉菜单中,添加其他元素,例如,原文作者所述的<a>和我自己实际用到的<input> ...
- 【转】idea中applicationContext-trans.xml中的Cannot resolve bean 'dataSource'...的问题解决
问题如下: (applicationContext-trans.xml中的部分截图) 先了解问题是怎么出现的: 此处的dataSource是在applicationContext-dao.xml中配置 ...
- zTree学习笔记
一.zTree的下载 官网:http://www.treejs.cn/v3/main.php#_zTreeInfo 解压后的目录结构为: 二.zTree入门案例 2.1 在页面中引入相关文件 要使用z ...
- POJ_1862 Stripies 【贪心】
一.题面 POJ1862 二.分析 反省一下,自己英语水平着实不行,该题其实就是问若给出若干个这种生物,根据这种体重变换方式,最终合并成一个后,体重最少是多少.根据公式 $m = 2\sqrt{m_{ ...