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 ...
随机推荐
- L309 单音节词读音规则(一)-辅音字母发音规则
1 字母和音素不是一一对应的 2单词读音规则知识结构全图 二 15个发音不变化的辅音字母:字母发音和音素一致 b / b / by d / d / dog f / f / fish h ...
- random os 序列化 模块模块 随机选择
# 1 random 模块 随机选择# import random#随机取小数# ret = random.random() #空是0到1之间的小数字# print(ret)# # 0.0799728 ...
- Linux下的shell与make
Linux下的shell与make 一.shell 1.1 什么是shell ● 用户与Linux的接口 ● 命令解释器 ● 支持多用户 ● 支持复杂的编程语言 ● Shell有很多种,如:csh,t ...
- 2017ICPC南宁赛区网络赛 The Heaviest Non-decreasing Subsequence Problem (最长不下降子序列)
Let SSS be a sequence of integers s1s_{1}s1, s2s_{2}s2, ........., sns_{n}sn Each integer i ...
- Proxy --支持的拦截操作篇
下面是 Proxy 支持的拦截操作一览. 对于可以设置.但没有设置拦截的操作,则直接落在目标对象上,按照原先的方式产生结果. (1)get(target, propKey, receiver) 拦截对 ...
- 2017第八届蓝桥杯C/C++ B组省赛-购物单
标题: 购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. 这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折 ...
- 使用PHPMailer 中的报错解决 "Connection failed. Error #2: stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:"
PHPMailer项目地址:https://github.com/PHPMailer/PHPMailer 项目中用到PHPMailer,使用过程中报错:"Connection failed. ...
- MySQL篇,第四章:数据库知识4
MySQL 数据库 4 数据备份(在Linux终端操作) 1.命令格式 mysqldump -u用户名 -p 源库名 > 路径/XXX.sql 2.源库名的表示方式 --all-database ...
- Angular 201703
$http vm.auth = function() { return $http({ method: 'POST', url: 'sys/auth.json' }) } service.auth() ...
- 从boost到Adaboost再到GBRT-GBDT-MART
本文是要配合<统计学习方法>才能看懂的,因为中间有些符号和定义是直接使用书本中的 先弄明白以下三个公式: 1)Boost(提升法)=加法模型(即基函数的线性组合)+前向分步算法+损失函数 ...