7.1 节点发现
启动Elasticsearch的时候,该节点会寻找有相同集群名字且课件的主节点,如果有加入,没有自己成为主节点,负责发现的模块两个目的

选出主节点以及发现集群的新节点
7.1.1发现的类型
Elasticsearch允许使用zen发现,在config里面的Elasticsearch.yml里面配置zen的信息即可,使用2.1.0的时候是这样的
7.1.2主节点
发现的功能之一就是选主节点,应该是zookeeper完成的,并且保持之间有相应
配置主节点和数据节点:Elasticsearch允许节点同时成为主节点和数据节点,但是可以根据自己的要求去设置,比如只做主节点,不做数

据节点等
主节点选取的配置:脑裂是比如一个集群十个节点,有三个断开,然后三个成为一个集群,所以一共有两个集群,成为脑裂,为了避免这种

情况,需要设置zen.minimum_master_nodes即可,设置为总个数+1的50%才可以成为集群,即可防止这种情况发生
7.1.3 设置集群名
设置Elasticsearch.yml文件里面cluster.name的值
配置多播:多播是zen发现的默认方法,除了常见设置,还可以控制群组地址,多播通信端口号,多拨请求被认为有效的时间,以及

Elasticsearch应该绑定的地址
配置单播:即需要配置ip以及端口号,以便被集群发现
7.1.4 节点的ping设置
可以控制或者改变默认的ping设置,ping是节点间发送的信号用来检测是否运行,可设置时间间隔,重复次数,以及默认等待时间等

7.2 时光之门与回复模块
一些重要信息例如索引、索引数据等信息需要被持久化到别的地方,里边在发生意外的时候恢复时读取,这就时时光之门的作用
7.2.1 时光之门
时光之门的类型可以在elasticsearch.yml里面添加gateway.type属性,设置为local,默认的类型是在本地文件系统中存储索引
7.2.2 恢复控制
可以设置什么时候启动恢复的过程,例如总共十个节点,在八个节点之后恢复,或者在八分钟之后恢复这样的设置
额外的gateway恢复选项
recover_after_master_nodes:指定多少有资格成为主节点的节点在集群中出现时才开始恢复
recover_after_data_nodes:指定多少个数据节点在急群众出现时才开始启动恢复
7.3 为高查询和高索引吞吐量准备Elasticsearch集群
如何调优使集群可以应对高查询以及高索引吞吐量
7.3.1 过滤器缓存
过滤器缓存可以提高查询速度,尤其是那些包含已经执行过的过滤器的查询,包含两类,一类是节点过滤器缓存,为默认的,另外一种为索

引过滤器缓存,第一种缓存可设置成使用特定大小的内存或者分配给Elasticsearch总内存的百分比
7.3.2 字段数据缓存和断路器
字段数据缓存:当查询对字段执行排序或者切面时,Elasticsearch把该字段的数据加载到内存,以便快速访问,可以设置

indices.fileddata.cache.size属性控制,可以设置为绝对值或者百分比,均为节点级别,也可以使用indices.filddata.cache.expire来

控制设置最大的不活动时间,但是一般情况下不设置,因为重建字段数据缓存是非常昂贵的
断路器:允许估计一个字段加载到缓存所需要的内存,通过抛出异常防止字段加载内存,造成内存爆炸,有两个属性,第一个是

indicies.filddata.breaker.limit属性,默认为80%,第二个是indices.fielddata.breaker.overhead默认为1.03
7.3.3 存储模块
存储模块控制如何写入索引数据,可以存储在内存或者一个持久化的磁盘中,内存快但是不稳定,索引慢,但是容忍故障
使用index.store.type来制定哪种存储类型
simplesf:基于磁盘的存储,对并发访问的性能不够好
niofs:使用javanio类访问索引文件,高并发性能好,但是不能再windows下
mmapfs:基于磁盘的存储,在内存中映射索引文件,为64为系统下的默认存储,读操作更快,但是要有足够数量的虚拟地址空间
memory:将索引存在内存中,必须内存够大,否则会失败
7.3.4 索引缓冲和刷新率
Elasticsearch允许设置索引最大的内存数,例如设置百分比等,还有indices.memory.min_shard_index_buffer_size默认为4mb,为每个分

片设置最小索引缓冲
索引刷新率:index.refresh_interval属性,指定多久刷新一次,默认为1s,值越小表示时间越短,也意味着索引和搜索会变慢,在重建索

引截断,建议将其设置为-1
7.3.5线程池得配置
Elasticsearch公开的线程池类型有,cache无限制的线程池,fixed固定大小的线程池,大小由size设置
重要的线程池有下面几个:
index:用来索引和删除操作,默认为fiexed,默认可用处理器的数量为300
search:用于搜索和计数请求,默认为fixed,size为可用处理器的数量乘以3,队列的size默认为1000
suggest:用于建议器的请求,默认为fixed,size为可用处理器的的数量,队列的size默认为1000
get:用于实时get请求,fixed,队列默认size为50
bulk:用于批量操作,fixed,size默认为可用处理器的数量(这句话应该如何理解),队列的size默认为50
线程池得配置可以在yml文件设置,也可以使用集群的更新api来更新,此处给出例子了
7.3.6 结合起来,一些通用建议
选择正确的存储:在64位时选用mmapfs,如果没64位,为unix系统选择niofs,为windows选择simplefs
索引刷新率:刷新率越快,查询越慢,索引吞吐量越低
优化线程池:强烈建议调整默认线程池,尤其是查询操作
优化合并过程:查询快需要更少的段,索引快需要更多的段,在什么时候合并需要自己根据情况取舍
字段数据缓存和断路器:限制字段数据缓存大小,设置断路器,两者结合确保不会遇到内存问题
索引的内存缓冲区:内存缓冲区的内存越多,越多的文档可以在里面保存,可以设置10%-30%
优化事务日志:Elasticsearch内部的translog模块,默认情况保存最多5000次操作,最大不超过200mb,如果想提高索引吞吐量,又可以承

担数据对搜索操作不可见的时间更长,可以提高这个默认值,如果提高可能做完索引到搜索课件需要更长的时间
7.4 模板和动态模板
索引模板的功能,不需要每次都创建映射等
模板的一个例子:给出模板的例子
在文件中存储模板:可以在config/templates目录中存放模板
7.4.2 动态模板
给出一个动态模板的例子,两种匹配模式,match模式使用该模板,unmatch模式使用该模板

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

【Elasticsearch】深入Elasticsearch集群的更多相关文章

  1. 原创 | 手摸手带您学会 Elasticsearch 单机、集群、插件安装(图文教程)

    欢迎关注笔者的公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习.面试资源哟!! 个人网站: https://www.exception.site/ ...

  2. 全文搜索引擎 Elasticsearch 入门:集群搭建

    本文主要介绍什么是 ElasticSearch 以及为什么需要它,如何在本机安装部署 ElasticSearch 实例,同时会演示安装 ElasticSearch 插件,以及如何在本地部署多实例集群, ...

  3. 使用Spring Data ElasticSearch+Jsoup操作集群数据存储

    使用Spring Data ElasticSearch+Jsoup操作集群数据存储 1.使用Jsoup爬取京东商城的商品数据 1)获取商品名称.价格以及商品地址,并封装为一个Product对象,代码截 ...

  4. Elasticsearch高级之-集群搭建,数据分片

    目录 Elasticsearch高级之-集群搭建,数据分片 一 广播方式 二 单播方式 三 选取主节点 四 什么是脑裂 五 错误识别 Elasticsearch高级之-集群搭建,数据分片 es使用两种 ...

  5. 1.ElasticSearch系列之集群部署

    第一步:安装JDK JDK要求jdk1.8+,不安装也可以,ES自带JDK 第二步:系统配置 2.1 禁用交换区 sudo swapoff -a 2.2 开最大文件数的限制 编辑文件 /etc/sec ...

  6. Elasticsearch 教程--分布式集群

    集群 补充章节 正如前文提到的,这就是第个补充的章节,这里会介绍 Elasticsearch 如何在分布式环境中运行. 本章解释了常用术语,比如 集群 (cluster), 节点 (node) 以及  ...

  7. ElasticSearch之二——集群

    ElasticSearch 集群 首先看下ElasticSearch(ES)的架构: 术语解释: cluster:代表一个集群,集群中有多个节点,其中有一个master节点,master通过选举自动产 ...

  8. Elasticsearch分布式搜索集群配置

    配置文件位于%ES_HOME%/config/elasticsearch.yml文件中,用Editplus打开它,你便可以进行配置.   所有的配置都可以使用环境变量,例如:node.rack: ${ ...

  9. Elasticsearch 安装与集群配置

    一.软件版本 操作系统:CentOS-6.5-x86_64 ES版本:5.0 主机:192.168.63.246 主机: 192.168.63.242 二.部署环境规划:   1. 需求:jdk版本: ...

  10. ELK 之一:ElasticSearch 基础和集群搭建

    一:需求及基础: 场景: 1.开发人员不能登录线上服务器查看详细日志 2.各个系统都有日志,日志数据分散难以查找 3.日志数据量大,查询速度慢,或者数据不够实时 4.一个调用会涉及到多个系统,难以在这 ...

随机推荐

  1. 解决在cmder中bash(WSL)上下箭头不能使用问题

    有三种解决方式,第一种方式最简单实用 安装新版本wslbridge 这个解决方法最简单,最实用,下载第三方wslbridge,安装即可使用. 这时再进入cmder,运行bash.exe,可以发现上下左 ...

  2. 怎样检查fragmentation

    可以运行下面SQL语句: SELECT dbschemas.[name] AS 'Schema', dbtables.[name] AS 'Table', dbindexes.[name] AS 'I ...

  3. 死磕Java之聊聊ArrayList源码(基于JDK1.8)

    工作快一年了,近期打算研究一下JDK的源码,也就因此有了死磕java系列 ArrayList 是一个数组队列,相当于动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractLis ...

  4. MongoDB 深入学习 -- ReplSet,Sharding,Security,Aggregation,Command

    萌新最近在对付MongoDB,因此每天都在翻官方文档,这里随便做点笔记 ReplSet 与 Sharding ReplSet 是副本集,也就是主从集合.可以用来做负载均衡,数据热备份.副本集的配置相对 ...

  5. 【spring】 SpringMVC返回json数据的三种方式

    配置方法一 **1.导入第三方的jackson包,jackson-mapper-asl-1.9.7.jar和jackson-core-asl-1.9.7.jar. 2.spring配置文件添加** & ...

  6. Tensorflow的认识

    1.基本概念(Tensorflow) 使用图(graphs)来表示计算任务 n 在被称之为会话(Session)的上下文(context)中执行图 n 使用tensor表示数据 n 通过变量(Vari ...

  7. SQL 判断Null

    字段 is null 这是多久没写SQL 了啊....................

  8. Octave安装符号工具箱

    1.国内访问Octave的代码包不稳定,可以访问网址http://sourceforge.mirrorservice.org/o/oc/octave/Octave%20Forge%20Packages ...

  9. 【Leetcode】Maximum Product Subarray

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  10. P4331 [BOI2004]Sequence 数字序列 (左偏树)

    [题目链接] https://www.luogu.org/problemnew/show/P4331 题目描述 给定一个整数序列\(a_1, a_2, ··· , a_n,\)求出一个递增序列\(b_ ...