ElasticSearch(七)管理ES
发现,故障修复以及恢复
在发现节点,主要是使用ES的zen模块来进行发现,发现的目的就是加入集群,zen的发现有两种模式分别是单播和组播,单播是指配置好了要发现的节点IP,组播则是指不配置具体IP,向局域网广撒网,寻找同名节点,并组成集群。
为了避免在组成集群的时候导致"脑裂"情况,即因为网络通信原因,集群通信被分成了几部分,因为ES集群具有选主的功能,每个部分有组成小集群;通过配置集群的最小组织成员数,比如半数+1,保证了当前集群机器,最多只能组成一个集群,如果有因为某个原因,某台机器离开,也无法再组织处一个新的集群。
集群选举出来的master和data/client节点将会当时互相ping;如果master无法和data/client节点ping通,那么将会标记该节点下线;data/client节点无法和master通信,那么将会触发选主。
关于故障修复,在ES里面故障修复就是发生在本地,ES里面的名词叫"本地网关",他是一个组件,用于恢复ES在本地里面的数据,这里包括元数据以及文档数据。恢复API是_recovery?pretty;但是恢复我理解应该是在集群重启之后自动进行的这个过程其实并不需要太多的人为干预。但是修复并不是像我们想象的那么简单,里面有很多配置,比如可以指定节点数达到多大才开始进行恢复,如果后来进入的节点可能因为错过了而无法恢复,因为恢复过程是由ES内容通过UDP指令方式(Java API)下发下去的,比如8台机器,配置满足了5台机器恢复,那么剩下的三台可能会因为加入完了而被推迟恢复,或者不背恢复。除非重启。
部落(tribe)
接着说一下ES里面的部落:tribe,可以在查询过程中链接两个集群的数据,查询的数据将会汇总到tribe节点,有tribe节点对数据进行整合再发送给client;tribe还可以写数据,但是这里有一个限制就是写的索引只能是一个集群所有;如果写入两个集群同名索引,那么只能成功写入一个,至于写入哪一个可以通过配置偏好实现。可以通过配置指明tribe只能读,不能写。
提高性能
如果数据频繁的更新,查询性不可重复(比如日志量更新量很大,不断查询最近15分钟日志),其实缓存的价值并不是很大;
对于内存压力很大的排序,汇总等处理,使用docValues来进行数据的字段级别的缓存,他占用极少的内存;
建议关闭Unix的内存关闭,bootstrap.mlockall=true;
热点线程:_nodes/hot_threads;可以获取那些占用了大量内存和cpu的线程,可以指定返回的条数,另外返回的内容不是json,而是一段组织好的文本;
扩展ES:有水平和垂直两种,重点说一下垂直。两种方式:多分片和多副本;如果瓶颈在于硬盘不够了,那么增加分片,做存储的负载均衡;如果瓶颈在于查询的压力,那么增加副本做请求的负载均衡;
关于副本,ES提供了一种自动创建副本的机制,就是实现某些索引的数据自动在所有的节点进行部署副本,这类数据首先是别频发使用的,比如基础数据,另外就是占用空间不能太大,否则每个节点都部署,存储压力会很大。
提高新能之对于高负载的场景:
存储使用default,
考虑延长刷新时间,默认是1s,设置为10s~30s,减少I/O压力;
优化线程池,注意大多数情况下默认配置是OK的,当且仅当主机计算能力有富余,同时操作有队列(有积压)的情况下,需要考虑调整线程池;
控制合并过程,主要控制段(segment)的大小,段是Lucene里面的物理存储单元,段越小,导致段很多,会导致查询变慢,内存使用量增加,但是索引会变得很快;如果你希望加快查询那么控制段的大小在一个相对较大的程度,这样会减少段的数量;
限流,可以控制I/O流量;
分布式,通过分布式,比如分片来减轻存储的压力;
提高性能之对于高频查询的场景:
尽量多利用缓存,比如过滤器缓存(倒排索引),分片缓存(非倒排索引);
使用路由;减少因为合并各方数据浪费的时间;
提高性能之对于高索引场景:
批量索引,注意控制段的大小,不要过大。
ElasticSearch(七)管理ES的更多相关文章
- Elasticsearch前沿:ES 5.x改进详解与ES6展望
转:http://www.dataguru.cn/article-11094-1.html 曾勇(Medcl),Elastic 工程师与布道师,2015 年加入 Elastic 公司.加入 Elast ...
- ElasticSearch(简称ES)
Windows下安装ElasticSearch ElasticSearch(简称ES)是一个基于Lucene的分布式全文搜索服务器,和SQL Server的全文索引(Fulltext Index) ...
- 【ELK】4.spring boot 2.X集成ES spring-data-ES 进行CRUD操作 完整版+kibana管理ES的index操作
spring boot 2.X集成ES 进行CRUD操作 完整版 内容包括: ============================================================ ...
- Elasticsearch使用系列-ES增删查改基本操作+ik分词
Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 一.安装可视化工具Kibana ES是一个NoSql数据库应用.和其他数据库 ...
- elasticsearch系列七:ES Java客户端-Elasticsearch Java client(ES Client 简介、Java REST Client、Java Client、Spring Data Elasticsearch)
一.ES Client 简介 1. ES是一个服务,采用C/S结构 2. 回顾 ES的架构 3. ES支持的客户端连接方式 3.1 REST API ,端口 9200 这种连接方式对应于架构图中的RE ...
- Elasticsearch学习系列七(Es分布式集群)
核心概念 集群(Cluster) 一个Es集群由多个节点(Node)组成,每个集群都有一个共同的集群名称作为标识 节点(Node) 一个Es实例就是一个Node.Es的配置文件中可以通过node.ma ...
- ES开源工具 elastichd 的使用(另一个elasticsearch可视化管理)
1. 获取elastichd镜像 docker pull containerize/elastichd 2. 启动镜像 docker run -p 9800:9800 -d containerize/ ...
- ElasticSearch入门篇Ⅰ --- ES核心知识概括
C01.什么是Elasticsearch 1.什么是搜索 垂直搜索(站内搜索) 互联网的搜索:电商网站,招聘网站,各种app IT系统的搜索:OA软件,办公自动化软件,会议管理,员工管理,后台管理系 ...
- 关于.Net Core使用Elasticsearch(俗称ES)、Kibana的研究说明
关于ElasticSearch Elasticsearch是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本.数字.地理空间.结构化和非结构化数据.Elasticsearch 在 Apa ...
随机推荐
- Python 封装
# 封装: # 1. 对属性的封装 # 2. 对功能的封装 # 3. 模块 # 4. 包 class Student: def __init__(self, num, name, clazz): se ...
- SSH防止超时的设置
针对SSH命令工具超时的解决方法: 1.在命令行输入这两行代码,即可完成 echo export TMOUT=1000000 >> /root/.bash_profile cat /roo ...
- IE9中input事件与异步事件连用会发生跨域问题
IE版本中IE8以及IE9以上版本不会存在这个问题唯独IE9 发生跨域问题代码 $("#stock_code").bind("input",function(e ...
- 莫烦tensorflow(4)-placeholder
import tensorflow as tf input1 = tf.placeholder(tf.float32)input2 = tf.placeholder(tf.float32) outpu ...
- 【Python】多进程1
1. 进程定义: (1) 进程是一个实体.每个进程都有他自己的地址空间,一般包括文本区域.数据区域和堆栈.进程是线程的容器. (2) 进程是一个“执行中的程序” 2. 进程的特征: (1) ...
- Vue 之 element-ui upload组件的文件类型
在使用element-ui的upload上传组件的时候,有时候会遇到 控制上传文件类型 的需求,只需要配置accept属性为允许的类型即可,比如: <el-upload class=" ...
- Coach Said No Worry
I have been losing memories those days. I can't get through what I was doing right then. I have prom ...
- 一个跳转提示页面---JS
//一个跳转提示页面 <script type="text/javascript"> var s=5; function go(){ do ...
- 百练1041-反反复复-2016正式C题
C:反反复复 总时间限制: 1000ms 内存限制: 65536kB 描述 Mo和Larry发明了一种信息加密方法.他们首先决定好列数,然后将信息(只包含字母)从上往下依次填入各列,并在末尾补充一 ...
- lesson5rnns-fastai
32min 如何确定embedding个数即嵌入矩阵容量?:不确定:与文本的字数关系不大,关键是语言的复杂度和需要解决的问题类型 embedding的效果要比one hot编码的效果好