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. Ubuntu16.04 安装eclipse

    首先确保自己的Ubuntu已经安装了jdk并且配置好了环境变量 然后在官网下载相应的eclipse安装包: https://www.eclipse.org/downloads/packages/ 下载 ...

  2. Unity 芯片拼图算法

    很多游戏的养成系统中会有利用芯片或者碎片来合成特定道具的功能,或者来给玩家以额外的属性提升等,先截个图以便更好说明: 如上图,我们有各种各样形状迥异的碎片,上面只不过列举了其中一部分,现在,我们需要利 ...

  3. 解决Macbook Pro 2017安装Windows10双系统后在Windows系统中Apple蓝牙鼠标不能使用问题

    MAC BOOK PRO 2017安装Windows10双系统 在Windows系统中蓝牙鼠标不能使用解决办法 最近因工作需要,macOS系统不能要求,大部分工作必须要在Windows系统中进行,最初 ...

  4. [go]包和工程管理

    一.系统环境变量 GOROOT 指定go的安装目录,win是在 C\Go\,Linux在 /usr/local/go下,如果不是默认的目录,则需要指定 GOROOT环境变量,否则不需要 GOPATH ...

  5. PHP入门-1

    基本数据类型: 1.整形 2.浮点型 3.字符串 4.布尔型 5.数组和对象 6.null 7.资源类型 8.伪类型 由于php是弱语言,所以他的数据类型不用自己来定义.定义一个数据类型,$name ...

  6. 算法竞赛进阶指南--hamilton路径

    // hamilton路径 int f[1 << 20][20]; int hamilton(int n, int weight[20][20]) { memset(f, 0x3f, si ...

  7. codeforce 227D Naughty Stone Piles (贪心+递归+递推)

    Description There are n piles of stones of sizes a1, a2, -, an lying on the table in front of you. D ...

  8. Kafka平滑滚动升级2.4.0指南

    今天测试了下kafka从2.0.0滚动升级至2.4.0,下面做一下记录.这个链接是Kafka官网对升级2.4.0的指南,可以参考  http://kafka.apache.org/24/documen ...

  9. 使用django开发论坛输出调试信息时附加远程客户端IP地址!

    前言 最近使用django开发了个匿名社区(哈士奇社区 4nmb.com),但是有个问题一直困扰我半天,就是如何在django调试信息上输出远程客户端的真实IP地址,在网上找了很多资料也没见人遇到过, ...

  10. 2020牛客寒假算法基础集训营1 J题可以回顾回顾

    2020牛客寒假算法基础集训营1 这套题整体来说还是很简单的. A.honoka和格点三角形 这个题目不是很难,不过要考虑周全,面积是1,那么底边的长度可以是1也可以是2, 注意底边1和2会有重复的, ...