elasticsearch 小总结

0. 起因

距离初次写关于es的文章 https://blog.csdn.net/aca_jingru/article/details/44488703 已经过去4年多了。。有必要更新一下了。把小tips总结一下。比较浅显。

1. 安装规划配置

规划分软件配置和硬件配置,

首先硬件,内存方面推荐是8g 的heap size ,那么整个系统就考虑16G的了。

现在用云的话不够就可以升级了,但是还是要凭经验规划好,重启一次节点可是非常耗时的。硬盘推荐ssd或者高效云盘。

硬盘最好做lvm,这样可以无感扩磁盘。es是支持对数据节点多目录的,但是没试过,不知道有没有什么坑。

操作系统建议centos7 ,都9102年了,你再用个centos6,那就真的无话可说了。

jdk方面openjdk8 就可以很顺畅的跑了。jdk的gc 不要乱改。这是官方一再强调的。

软件方面,详细配置可以看官网https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html

最后贴一个es maser节点的配置

cluster.name: my-ems
node.name: master-1
path.data: /vdb/lib/elasticsearch
path.logs: /vdb/log/elasticsearch
http.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: ["ip1,"ip2"]
transport.host: 0.0.0.0
node.master: true
node.data: false
discovery.zen.minimum_master_nodes: 2

数据节点跟他类似,不说了。

2. es滚动升级

这个非常重要,总不可能中断服务升级吧。

英文原文https://www.elastic.co/guide/en/elasticsearch/reference/current/rolling-upgrades.html

适用于升级的情况,主要点是在关节点前禁止shard allocation

默认情况下,关了es节点,经过index.unassigned.node_left.delayed_timeout(默认是一分钟) 后会进行

curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
"persistent": {
"cluster.routing.allocation.enable": "primaries"
}
}
'

stop elasticsearch, 然后 设置

curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
"persistent": {
"cluster.routing.allocation.enable": null
}
}
'

注意要等一个节点完全起来了再操作另外节点,不然可是会有丢数据的情况。

4. data节点master节点分离

实践下来最好分开,这样每次node节点重启并不会发生master 选举的情况,而且master 和data 节点都要用heap 内存,之前的实践来看如果内存不够大,会频繁gc ,影响master效率。

5. 运维工具使用

salt,ansible,fabric,puppet,chef等 这种挑一种熟练掌握就行了,官方提供了3个解决方案,https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html ,puppet,chef,ansible 。个人觉得有点重,喜欢自己写。

6. 队列使用

之前还是使用redis, 确实方便调试,但是现在是9102年,不用kafka这种神器有点说不过去了,

kafka 的使用上面我的经验是手动创建topic ,指定大一点的分区。为了ha 最好是3节点的集群。硬件无特别注意之处。kafka对硬件的要求真的很小。

redis的话很容易爆内存。redis也没啥特别好的ha方案。

7. 监控

kibana 自带的一个es的监控非常好用,可以看index速度,jdk gc情况。

另外如果使用了kafka的话最好接入promethues+grafana+alertmanager 。

elasticsearch 小总结的更多相关文章

  1. ElasticSearch小操之Marvel,Sense

    慢慢弄弄,说不好马上就要用呢,,, 嘿嘿 参考网址: http://es.xiaoleilu.com/ Elasticsearch 权威指南(中文版) 阅读地址:Elasticsearch权威指南(中 ...

  2. ELK笔记

    ELK笔记 ELKStack高级实战培训http://files.cnblogs.com/files/MYSQLZOUQI/ELKStack%E9%AB%98%E7%BA%A7%E5%AE%9E%E6 ...

  3. Elasticsearch 学习之提升性能小贴士

    小贴士1:规划索引.分片 以及集群增长情况 ES使得创建大量索引和超大量分片非常地容易,但更重要的是理解每个索引和分片都是一笔开销.如果拥有太多的索引或分片,单单是管理负荷就会影响到ES集群的性能,潜 ...

  4. EasySwoole+ElasticSearch打造 高性能 小视频服务系统

    EasySwoole+ElasticSearch打造高性能小视频服务 第1章 课程概述 第2章 EasySwoole框架快速上手 第3章 性能测试 第4章 玩转高性能消息队列服务 第5章 小视频服务平 ...

  5. 【先定一个小目标】在Windows下的安装Elasticsearch

    ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apach ...

  6. 关于MySQL导入数据到elasticsearch的小工具logstash

    logstash核心配置文件pipelines.yml #注:此处的 - 必须顶格写必须!!! - pipeline.id: invitation #下面路径配置的是你同步数据是的字段映射关系 pat ...

  7. Elasticsearch之match_phrase小坑记录

    1.问题抛出 某个词组在Elasitcsearch中的某个document中存在,就一定通过某种匹配方式把它搜出来. 举例: title=公路局正在治理解放大道路面积水问题. 输入关键词:道路,能否搜 ...

  8. jar hell & elasticsearch ik 版本问题

    想给es 安装一个ik 的插件, 我的es 是 2.4.0, 下载了一个版本是 1.9.5, [2016-10-09 16:56:26,248][INFO ][node ] [node-2] init ...

  9. ElasticSearch 5学习(5)——第一个例子(很实用)

    想要知道ElasticSearch是如何使用的,最快的方式就是通过一个简单的例子,第一个例子将会包括基本概念如索引.搜索.和聚合等,需求是关于公司管理员工的一些业务. 员工文档索引 业务首先需要存储员 ...

随机推荐

  1. GraphicsLab Project 之 Curl Noise

    作者:i_dovelemon 日期:2020-04-25 主题:Perlin Noise, Curl Noise, Finite Difference Method 引言 最近在研究流体效果相关的模拟 ...

  2. 将jar包发布到maven中央仓库

    将jar包发布到maven中央仓库 最近做了一个swagger-ui的开源项目,因为是采用vue进行解析swagger-json,需要前端支持,为了后端也能方便的使用此功能,所以将vue项目编译后的结 ...

  3. kafka相关术语名词

    Topic:标签名,一个消息队列的名称 Producer:生产者,发布消息 Consumer:消费者,订阅发布消息,进行处理的存在 Broker:kafka集群,有一个.多个Topic Partiti ...

  4. sqlilabs less18-22 HTTP头的注入

    less18 user-agent的注入 源码分析: check_input对name,password进行了过滤 function check_input($value) { if(!empty($ ...

  5. 文件上传漏洞(pikachu)

    文件上传漏洞 文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像,附件等等.当用户点击上传按钮后,后台会对上传的文件进行判断,比如是否是指定的类型.后缀名.大小等等,然后将其按照设 ...

  6. 备忘录模式 (c++实现)

    模式定义 备忘录(Memento): 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可以将该对象恢复到原先保存的状态. 模式动机 备忘录模式比较适用于功能比较复 ...

  7. jdbc批量插入数据

    //插入很多书(批量插入用法) public void insertBooks(List<Book> book) {   final List<Book> tempBook=b ...

  8. 被@ResponseBoby注释的方法在拦截器的posthandle方法中设置cookie失效的问题

    文章标题可能有点绕口.先来解释下遇到的问题. 我写了一个拦截器,希望能够实现保存特定方法的请求参数到cookie中. public class SaveParamInterceptor extends ...

  9. iOS开发之结合asp.net webservice实现文件上传下载

    iOS开发中会经常用到文件上传下载的功能,这篇文件将介绍一下使用asp.net webservice实现文件上传下载. 首先,让我们看下文件下载. 这里我们下载cnblogs上的一个zip文件.使用N ...

  10. JVM调优:GC 参数

    2019独角兽企业重金招聘Python工程师标准>>> JVM调优:GC 参数 博客分类: java jvm 参考: <Memory Management in the Jav ...