1:es集群脑裂问题(不要用外网ip,节点角色不要混用)

  原因1:阿里云服务器,外网有时候不稳定。

    解决方案:单独采购服务器,内网安装

  原因2:master和node节点没有分开

  解决方案:

    分角色:master节点(三台),data节点(随着数据增加而增加),client(随着查询压力而增加)节点

    Master节点:node.master: true   node.data: false

    Data节点:node.master: false   node.data: true

    Client 节点:node.master: false   node.data: false

2:es集群名称的坑(1.4.x版本)

  之前在使用1.4版本的时候,这个版本默认是多播协议,可以自动把同一网段的es节点组成一个集群。

  所以,在刚开始使用的时候,多种业务部署了多个es集群,结果发现这几个集群莫名其妙搞到一块了。

  建议:尽量不要使用集群的默认名称。

  不过在2.x的版本中已经默认开启单播协议,不会自动增加同一网段的节点到一个集群。但是也建议修改一下集群名称,改完之后,如果使用java api进行操作,则必须设置cluster.name属性。

3:数据平衡,数据恢复(recover)

  假设一个有10个节点的集群。

  当重启集群的时候,在启动第二个节点的时候,集群之内的两个节点就开始恢复数据,相互生成副本,当启动第三个节点的时候,这三个节点又重新对数据进行恢复...........

  这样非常浪费性能,导致在启动集群的过程当中,做了很多无用功,所以可以设置,当启动集群中5~6个节点的时候再允许进行数据恢复。

  建议设置为集群节点数量的一半以上。

  gateway.recover_after_nodes: 5

  还有一点:es集群要使用内网ip,否则会出现数据恢复缓慢的现象。

4:定时优化索引片段很重要

  开始的时候,没有对索引片段进行优化,查询延迟在3S以上,索引优化之后,延迟时间立刻降到1S以内。

5:内存溢出

  修改elasticsearch.in.sh脚本

  Master节点内存占用不多,CPU稍微高一点。

  Data节点内存占用比较多,io操作比较频繁

  Client:CPU和内存占用比较平均

6:集群插入数据报错

  集群状态为yellow,索引副本数设置为2,但是只有一个节点存活,也就是没有产生副本。插入数据时报错。

7:设置jvm锁住内存时启动警告

  当设置bootstrap.mlockall: true时,启动es报警告Unknown mlockall error 0,因为linux系统默认能让进程锁住的内存为64k。

  解决方法:设置为无限制,linux命令:ulimit -l unlimited(立刻生效)

        或者修改/etc/security/limits.conf(下一次重启开始,永久有效)文件

8:elk中,redis中数据堆积严重

  调整logstash内存,使用批量方式向es中索引数据。

9:横向扩展es集群,不要纵向扩展

  单纯增加es节点的内存和CPU不会有很大提升,建议多增加节点。

10:目前es集群部署情况

  Master:3台(4 core ,16G内存,500G)

    192.168.1.20

    192.168.1.21

    192.168.1.22

  Data:8台(4 core 32G内存,2x1T)

    192.168.1.31

    192.168.1.32

    192.168.1.33

    192.168.1.34

    192.168.1.35

    192.168.1.36

    192.168.1.37

    192.168.1.38

  Client:3台(4 core,32G,500G)

    192.168.1.10

    192.168.1.11

    192.168.1.12

11、后续更新

Elasticsearch之es学习工作中遇到的坑(陆续更新)的更多相关文章

  1. linux工作中遇到的问题总结---更新中

    今天这个,严格来说不算一篇文章,我只想把我工作中遇到的问题分享给大家,让大家少犯错误. 1.安装rmp包时出现错误 :header V3 DSA signature: nokey ,key id .. ...

  2. Appium学习实践(五)遇到的坑(记录自己工作中遇到的坑以及解决方案,不定时更新)

    1.错误截图,有时候测试用例执行错误的话,相对于复杂的log,一张错误截图也许能更明确哪里出的问题(当然有时,截图+log还是最好了) 坑:本来是想测试用例fail的时候捕获异常来执行截图操作,但是由 ...

  3. ELK(ElasticSearch+Logstash+Kibana)配置中的一些坑基于7.6版本

    三个组件都是采用Docker镜像安装,过程简单不做赘述,直接使用Docker官方镜像运行容器即可,注意三个组件版本必须一致. 运行容器时最好将三个组件的核心配置文件与主机做映射,方便直接在主机修改不用 ...

  4. Windows批处理命令学习中遇到的坑--持续更新中

    再次拾起windows批处理命令,下边将一些遇到的小问题写出来,希望可以帮到大家 1.set命令:set主要的作用是为变量赋值,类似于编程语言中的var i = Value:但是在使用的过程中一定要注 ...

  5. 学习SpringBoot中遇见的坑

    1. 在搭建SpringBoot HelloWorld 时项目结构应该这样: 而不能这样: 否则访问时出现错误页面: 原因:此时还不知道,先记录下来. --已解决2018/12/11,因为Spring ...

  6. 【Go】开发中遇到的坑——持续更新

    关于CGo多语言编译 问题出现在将openCV封装到go语言的时候.在编译时需要设置 CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o xxx mai ...

  7. 工作中常用Lixu命令学习笔记

    对于Linux,我是菜鸟,也是在工作中了才开始慢慢接触,用Linux的人都我都会觉得屌屌的,现在把工作中常用的一些Linux命令记录一下,供以后学习和参考. cd 这可能是我觉得Linux最简单的一个 ...

  8. git 工作中常用命令(结合vscode学习git 命令)

    作为一名前端开发,大家在工作中常常使用什么开发工具呢,我觉得我首选的是vscode,他配合git使用起来非常方便. 工作中常用三个命令: git终端常使用: git add . git commit ...

  9. 如何比较Keras, TensorLayer, TFLearn ?——如果只是想玩玩深度学习,想快速上手 -- Keras 如果工作中需要解决内部问题,想快速见效果 -- TFLearn 或者 Tensorlayer 如果正式发布的产品和业务,自己设计网络模型,需要持续开发和维护 -- Tensorlayer

    转自:https://www.zhihu.com/question/50030898/answer/235137938 如何比较Keras, TensorLayer, TFLearn ? 这三个库主要 ...

随机推荐

  1. 【转】DotNet加密方式解析--非对称加密

    [转]DotNet加密方式解析--非对称加密 新年新气象,也希望新年可以挣大钱.不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬.(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...).已经上 ...

  2. UML之序列图

    一 序列图概述: 序列图主要用于展示对象之间交互的顺序. 序列图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸. 横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存 ...

  3. bzoj 1010 (单调决策优化)

    能够非常好的证明单调决策性质.用   记sum[i]=sigma(C[1],C[2].....C[k]);f[i]=sum[i]+i;  c=l-1; 有转移dp[i]=min( dp[j]+(f[i ...

  4. matlab中plot画图参数的设置

    原文链接:http://blog.sciencenet.cn/blog-281551-573856.html 一.Matlab绘图中用到的直线属性包括: (1)LineStyle:线形 (2)Line ...

  5. Java:网络传输

    网络以字节码传输 String s = "我恨你"; //转成字节: byte[] brr = s.getBytes();//gbk //iE:utf-8 String s1 = ...

  6. js sort()函数 排序问题 var arr =['A-1-5-1','A-1-10-2','A-1-5-5','B-2-3-1','C-4-10-1'], 对这个数组进行排序,想达到的效果是["A-1-5-1", "A-1-5-5", "A-4-10-1", "A-1-10-2", "A-2-3-1"]

    先介绍个方法 charCodeAt() 方法可返回指定位置的字符的 Unicode 编码.这个返回值是 0 - 65535 之间的整数. stringObject.charCodeAt(index) ...

  7. IDEA下——Spring入门程序

    创建一个Maven的项目,我的项目结构如下: 在pom文件里写下需要导入的依赖: <?xml version="1.0" encoding="UTF-8" ...

  8. WPF 支持的多线程 UI 并不是线程安全的

    原文:WPF 支持的多线程 UI 并不是线程安全的 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可.欢迎转载.使用.重新发布,但务必保留文章署名吕毅(包含链 ...

  9. Hello World (记事本+命令行)

    读完这篇博客.你将对下面几点更有心得: - Java 中的当前路径.类路径等概念 - javac.java 命令的综合使用 - jar 包的创建及引用 创建文件夹准备測试源代码 打包外部依赖 Jar ...

  10. Android开发系列(十六):【Android小游戏成语连连看】第二篇

    写的晚了,在分工个Z市高中的一个成绩查询的系统,原系统居然是用VB写的,我不得不佩服原本写系统的那位哥们真能耐得住. 明天搭建下SVN就等着先发project款然后開始项目了.想想有工资进账,心里也为 ...