网上较多的是6.×及以下版本的集群搭建,我们就以新版本7.6搭建环境如下

环境:三台服务器192.168.11.21、192.168.11.22、192.168.11.23均安装好ES7.6版本,其中192.168.11.23服务器安装kibana

关于Elasticsearch的安装,直接从官网下载Elasticsearch7.6版本解压缩到linux自定义位置下即可,然后分发复制到集群各台服务器,ES 7.x及以上版本内置了JDK环境,较为方便;或者采用docker方式,请参考之前较早关于docker的文章教程。

其实推荐非docker安装,老实讲用了一段时间docker发现这东西有时候很鸡肋,尤其修改配置文件参数的时候需要通过命令行执行方式,虽然都各有优缺点吧,我是准备弃坑docker了。

一、集群搭建

1. 集群配置,文件Elasticsearch.yml

直接上Elasticsearch.yml,每台机器上的Elasticsearch.yml均写成如下,只展示必要配置信息,即可构成最简单实用的集群配置,更多配置信息详见:ES7.×集群搭建,Elasticsearch.yml配置文件详解大全

特别注意“本机节点名”,第一台服务器为"node-1",第二台"node-2",第三台为"node-3",除此之外其他都一样

#集群名
cluster.name: "test"
#本机节点名
node.name: "node-1"
# 当前节点是否可以被选举为master节点,是:true、否:false
node.master: true
#数据和日志存放位置
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
#数据备份仓库位置
path.repo: /data/elasticsearch_data/es_backup
# 主机访问的端口号和网关
network.host: 0.0.0.0
http.port: 9200
#设置节点之间通信的端口
transport.tcp.port: 9300
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
# es7之后,不可使用旧版discovery.zen.ping.unicast.hosts这个参数,而用discovery.seed_hosts替换
discovery.seed_hosts:  ["192.168.11.21","192.168.11.22","192.168.11.23"]
# 集群从节点中选举master
cluster.initial_master_nodes: ["node-1","node-2","node-3"]

然后启动三台服务器的es

[root@host-192-168-11-21 ~]# service elasticsearch start

可进入日志 /data/elasticsearch/logs下查看日志情况

[root@host-192-168-11-21 logs]# tail -f test.log

2. 查看集群状态

启动完毕后去kibana查看集群和节点情况

GET /_cat/health?v

GET /_cat/nodes?v

显示均没有问题,绿色儿的green,完全ojbk,选举了node-2为master主节点,来测试一下创建个索引看看怎么个集群效果。

3. 测试集群效果

创建test1索引,姑且设定分片数为3,副本为1,一个字段name就好了,然后再往里面写点数据。

写了11条数据,看下分片情况

GET /_cat/shards

可以看到数据分片和备份分片分别存放到了不同服务器上,这就是集群。

二、集群进阶,生命周期和模板

至于如何创建生命周期和模板,上节文章教程 Elasticsearch7.×集群搭建,生命周期策略ilm_policy、索引模板template管理已经演示,具体代码命令也在上节中展示,本次讲解核心关键内容,设定集群节点hot、warm、cold生命周期阶段。

1. 什么是hot、warm、cold?有什么用呢?

一句话:hot节点用来写入、读取数据,对服务器性能要求大;warm只提供读取数据;cold基本上是快要废弃的数据了,查询都很少了;除此之外节点还能进入delete状态,将数据删除。用处就是可以更合理的分配服务器资源,尤其面对是超大具有时效性的数据量,价值明显。

在实际工作中,我会将索引数据在30天内的时效数据分配到hot节点,达到这一容量通过生命周期搭配索引模板新生成一个索引继续存放新数据,而将旧索引数据推入warm节点,再过30天,我会将warm索引推入cold节点,再过30天就delete删掉这些数据,以此类推保证服务高效。

2. 怎么用?

公司有20台服务器,其中10台用作hot节点,7台设用作warm节点,3台用作cold节点,共同构成一个大集群。但我目前演示只有三台服务器,并且还想演示生命周期,所以配置两台hot节点,一台warm节点,cold节点暂时不要了。

首先修改Elasticsearch.yml文件,将node-1和node-2用作hot节点,node-2作为warm节点。

在Elasticsearch.yml添加如下配置属性:

#集群生命周期节点配置hot/warm/cold
#这两项配置是为节点增加标签,具体名称并不是写死的,这个名称与后面模板和策略配置有关,后面会用到
node.attr.box_type: hot
node.attr.rack: rack1

完整的Elasticsearch.yml也看下吧,以node-1为例,node-2的node.attr.box_type也是hot,node-3的是warm

#集群名
cluster.name: "test"
#本机节点名
node.name: "node-2"
# 当前节点是否可以被选举为master节点,是:true、否:false
node.master: true
#集群生命周期节点配置hot/warm/cold
#这两项配置是为节点增加标签,具体名称并不是写死的,这个名称与后面模板和策略配置有关,后面会用到
node.attr.box_type: hot
node.attr.rack: rack1
#数据和日志存放位置
path.data: /data/elasticsearch_data/data
path.logs: /data/elasticsearch_data/logs
# 主机访问的端口号和网关
network.host: 0.0.0.0
http.port: 9200
#设置节点之间通信的端口
transport.tcp.port: 9300
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
# es7之后,不可使用旧版discovery.zen.ping.unicast.hosts这个参数,而用discovery.seed_hosts替换
discovery.seed_hosts:  ["192.168.11.21","192.168.11.22","192.168.11.23"]
# 集群从节点中选举master
cluster.initial_master_nodes: ["node-1","node-2","node-3"]

改好后,重启三台服务器,重新查看集群状态,确定依然无误。

3. 生命周期演示

根据上节课创建生命周期和模板的方法,建立生命周期、模板。

这里索引建好之后,注意配置节点属性,选择名叫warm的那一台,其实也就是node-3那台服务器。当然也可以选择Default allocation (don't use attributes)默认分配。

 设定的临界值是2个文档上限,我存入5个文档,先看下情况。

嗯如上图,已经满足了rollover条件 ,再看下分片情况

咦?不对呀,我三台机器,怎么只有node-1和node-2在被使用,node-3呢?因为node-3是用作warm节点使用的,生命周期里写了"index.routing.allocation.include.box_type":"hot",所以当新数据默认进入hot节点状态,不会把数据分配到node-3机器,稍后我们执行rollover操作。

rollover成功,新生成test-000002索引,此时通过别名test再往里面写数据,就默认写到test-000002索引。

由于我的生命周期策略是rollover之后1分钟后进入warm阶段。 等一分钟看下旧索引,发现状态已经变为warm,副本数也跟生命周期warm状态规定的一样为0。

看下分片情况

 可以看到,warm状态的test-000001全部转移到node-3节点,而且不具有副本分片,而新索引test-000002属于hot状态,依旧在node-1和node-2节点上奋斗着。

以上就是关于ES生命周期和模板的全部演示教程,如有任何问题和指教,请在评论区留言我。

Elasticsearch7.×集群搭建,生命周期策略ilm_policy、索引模板template管理(二)相关推荐

  1. Elasticsearch生命周期策略ilm_policy、索引模板template管理(一)

    生命周期和模板都是为了优化ES性能的,假如ES是一个小学校,数据是一个个入学的小学生,那么生命周期就是一二三年级,用生命周期制定的规则来管理学生何时进入下一个年级,1年级新学生允许他们随意玩耍,支持数 ...

  2. ElasticSearch系列零之集群搭建

    1. 参考目录 参考一: Linux服务器CentOs7对Elasticsearch7 集群搭建 参考二: Elastic 中文社区 参考三: Linux内核调优部分参数说明 2. 集群部署步骤 目录 ...

  3. Docker Swarm 初步认识 及 集群搭建

    [Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...

  4. Hadoop/Spark集群搭建图文全攻略

    Hadoop/Spark集群搭建图文全攻略 一.安装VMware 二.创建Linux虚拟机 三.CentOS-7安装 四.Linux系统环境配置 五.其他配置 六.虚拟机克隆 七.jdk安装 八.Zo ...

  5. Centos7+Elasticsearch7.4.2+Kibana+IK分词+ElasticHD 安装配置以及集群搭建

    Centos7+Elasticsearch7.4.2+Kibana+IK分词+ElasticHD 安装配置以及集群搭建 1. elasticSearch 7.4.2 安装 1.1 关于jdk 1.2 ...

  6. elasticsearch7.0.1集群搭建(最后有ES6.7的配置)

    ** ES集群搭建 **: 说明:首先要讨论搭建几个集群,集群搭建很简单,只需要配置做好就ok; 一 : 在搭建集群之前,我们首先要了解一个es中的相关内容 cluster : 代表一个集群,集群中有 ...

  7. 大数据技术之_17_Storm学习_Storm 概述+Storm 基础知识+Storm 集群搭建+Storm 常用 API+Storm 分组策略和并发度

    大数据技术之_17_Storm学习 一 Storm 概述 1.1 离线计算是什么? 1.2 流式计算是什么? 1.3 Storm 是什么? 1.4 Storm 与 Hadoop 的区别 1.5 Sto ...

  8. 视频教程-ElasticSearch7.x集群搭建(es7)主从读写分离搭建教程-ELK

    ElasticSearch7.x集群搭建(es7)主从读写分离搭建教程 10多年互联网一线实战经验,现就职于大型知名互联网企业,架构师, 有丰富实战经验和企业面试经验:曾就职于某上市培训机构数年,独特 ...

  9. elasticsearch7.x集群搭建及倒排索引脑裂问题精讲

    简介 大家好,我是jackxu,es大家都听过,现在也是越来越火了,用到的公司越来越多.中文官网:https://www.elastic.co/cn/ . es的特点: 可拓展性:大型分布式集群(数百 ...

最新文章

  1. HTTP协议之Chunked解析
  2. mysql如何进行压测_详解MySQL如何按表创建千万级的压测数据
  3. Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0
  4. Windows服务器上怎样开放指定端口
  5. hapi lab测试框架简单使用
  6. Web 前端——项目文件夹命名规范
  7. 个人电脑 公司电脑 代理_这样的电脑谁来用?一体式水冷,磁悬浮风扇!
  8. 飞信linux下载文件,OpenFetion(飞信for Linux)
  9. python层次聚类_python实现层次聚类
  10. Redis实现计数器---接口防刷
  11. WebPager For ASP.NET (基于ASP.NET的数据分页控件)
  12. linux可执行文件bad interpreter解决方法
  13. mysql字符集编码解析_MySQL字符集编码的理解
  14. 小米笔记本 镜像_小米笔记本Air 13.3原装WIN10出厂系统ISO镜像1607原版镜像下载
  15. python自动化写作_利用python打造“全自动公文写作神器”之构建公文词库
  16. 【稀饭】react native 实战系列教程之项目介绍
  17. 一个神奇的大学科目《软件工程》,知识点总结+测试题,包你不挂科
  18. Mac终端链接服务器记住密码
  19. 思维导图工具XMind下载
  20. 带宽和网速之间的关系

热门文章

  1. 【互动媒体】结课作业第二部分:数据分析、可视化以及几个额外问题
  2. UI线程与子线程通信示例 日记
  3. java秀恩爱代码_Android表白秀恩爱源码
  4. net core WebApi——文件分片上传与跨域请求处理
  5. 牛客网Java选择题练习
  6. Spark 列转行操作
  7. 如何在html上放小游戏,如何在网页插入小游戏
  8. situ课题组工作站神经网络训练速度测评
  9. 3、xx配音狂app登陆算法分析【Android逆向分析学习】
  10. html 块元素 css,HTML和CSS - 内嵌块元素的问题