ELK(4)——搭建elasticsearch集群_sunshinew427的博客-程序员宅基地

本博客在上一篇基础上操作

elasticsearch集群中节点角色

Master:
主要负责集群中索引的创建、删除以及数据的Rebalance等操作。Master不负责数据的索引和检索,所以负载较轻。当Master节点失联或者挂掉的时候,ES集群会自动从其他Master节点选举出一个Leader。

Data Node:
主要负责集群中数据的索引和检索,一般压力比较大。

Coordinating Node:
原来的Client node的,主要功能是来分发请求和合并结果的。所有节点默认就是Coordinating node,且不能关闭该属性。

Ingest Node:
专门对索引的文档做预处理

实验步骤:

(1)修改sever2上的配置文件

vim /etc/salt/master

在这里插入图片描述

(2)安装软件

# rpm -ivh jdk-8u171-linux-x64.rpm
# rpm -ivh elasticsearch-7.6.1.rpm	//7.6版本自带jdk

在这里插入图片描述
(3)修改配置文件

# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-es			#集群名称
node.name: server7			#主机名需要解析
path.data: /var/lib/elasticsearch	#数据目录
path.logs: /var/log/elasticsearch	#日志目录
bootstrap.memory_lock: true	#锁定内存分配
network.host: 172.25.0.7		#主机ip
http.port: 9200			#http服务端口
cluster.initial_master_nodes: ["server13"]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)修改systemd启动文件


# vim /usr/lib/systemd/system/elasticsearch.service
[Service]		#在service语句块下添加
LimitMEMLOCK=infinity
# systemctl daemon-reload
# systemctl start elasticsearc

在这里插入图片描述

(5) 修改系统限制文件

vim /etc/security/limits.conf
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch 	   - 	nofile 	65536
elasticsearch	   -	nproc 	4096

(6)启动服务
在这里插入图片描述测试:
在这里插入图片描述

elasticsearch节点优化

生产集群中可以对这些节点的职责进行划分
建议集群中设置3台以上的节点作为master节点,这些节点只负责成为主节点,维护整个集群的状态。
再根据数据量设置一批data节点,这些节点只负责存储数据,后期提供建立索引和查询索引的服务,这样的话如果用户请求比较频繁,这些节点的压力也会比较大。
所以在集群中建议再设置一批协调节点,这些节点只负责处理用户请求,实现请求转发,负载均衡等功能。

在生产环境下,如果不修改elasticsearch节点的角色信息,在高数据量,高并发的场景下集群容易出现脑裂等问题。
默认情况下,elasticsearch集群中每个节点都有成为主节点的资格,也都存储数据,还可以提供查询服务。
节点角色是由以下属性控制:
node.master:  false|true		
node.data:  true|false
node.ingest:  true|false 
search.remote.connect: true|false
 默认情况下这些属性的值都是true。
node.master:这个属性表示节点是否具有成为主节点的资格
    注意:此属性的值为true,并不意味着这个节点就是主节点。
    因为真正的主节点,是由多个具有主节点资格的节点进行选
    举产生的。
node.data:这个属性表示节点是否存储数据。
node.ingest: 是否对文档进行预处理。
search.remote.connect:是否禁用跨集群查询

第一种组合:(默认) node.master: true node.data: true node.ingest: true
search.remote.connect: true 这种组合表示这个节点即有成为主节点的资格,又存储数据。
如果某个节点被选举成为了真正的主节点,那么他还要存储数据,这样对于这个节点的压力就比较大了。
测试环境下这样做没问题,但实际工作中不建议这样设置。

第二种组合:(Data node)
node.master: false
node.data: true
node.ingest: false
search.remote.connect: false
这种组合表示这个节点没有成为主节点的资格,也就不参与选举,只会存储数据。
这个节点称为data(数据)节点。在集群中需要单独设置几个这样的节点负责存储数据。后期提供存储和查询服务。

第三种组合:(master node)
node.master: true
node.data: false
node.ingest: false
search.remote.connect: false
这种组合表示这个节点不会存储数据,有成为主节点的资格,可以参与选举,有可能成为真正的主节点。
这个节点我们称为master节点

第四种组合:(Coordinating Node)
node.master: false
node.data: false
node.ingest: false
search.remote.connect: false
这种组合表示这个节点即不会成为主节点,也不会存储数据,
这个节点的意义是作为一个协调节点,主要是针对海量请求的时候可以进行负载均衡。

第五种组合:(Ingest Node)
node.master: false
node.data: false
node.ingest: true
search.remote.connect: false
这种组合表示这个节点即不会成为主节点,也不会存储数据,
这个节点的意义是ingest节点,对索引的文档做预处理。

实验过程:

(1)设置server2为master
在这里插入图片描述
(2)server3是数据节点但可以作为master
在这里插入图片描述
(3)server4为协调节点
在这里插入图片描述
测试:【关闭server2的服务后在开启】
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42024433/article/details/106647039

智能推荐

Hive 创建表结构详情_hive在hdfs创建表的结构-程序员宅基地

1、Hive是一种建立在Hadoop文件系统上的数据仓库架构,并对存储在HDFS中的数据进行分析和管理;(也就是说对存储在HDFS中的数据进行分析和管理,我们不想使用手工,我们建立一个工具把,那么这个工具就可以是hive)2、 hive建表语法中的分隔符设定ROW FORMAT DELIMITED 分隔符设置开始语句FIELDS TERMINATED BY:设置字段与字段之间的分隔符..._hive在hdfs创建表的结构

TensorFlow-gpu 无法导入_pywrap_tensorflow_internal的错误-程序员宅基地

解决方法在安装的cuda/bin文件夹下,把cudnn64_6.dll 文件改名为 cudnn64_5.dll来源 https://stackoverflow.com/questions/43577923/cannot-import-tensorflow-for-gpu-on-windows-10

ubuntu18.04.1 开机默认进入命令行模式/用户图形界面_linux ubuntu18.04 暂时开机进入可视化命令行-程序员宅基地

一、开机默认进入命令行模式1、输入命令:sudo systemctl set-default multi-user.target 2、重启:reboot要进入图形界面,只需要输入命令startx从图形界面切换回命令行:ctrl+alt+F7二、开机默认进入图形用户界面1、输入命令:sudo systemctl set-default graphical.target 2、重启:reboo..._linux ubuntu18.04 暂时开机进入可视化命令行

Clion配置stm32嵌入式开发环境-程序员宅基地

简书也不怎么用,搬迁一篇之前写的文章 , 留作足迹吧~

python 识别数字模块_Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例...-程序员宅基地

本文实例讲述了Python使用gluon/mxnet模块实现的mnist手写数字识别功能。分享给大家供大家参考,具体如下:import gluonbook as gbfrom mxnet import autograd,nd,init,gluonfrom mxnet.gluon import loss as gloss,data as gdata,nn,utils as gutilsimport ...

重磅 | 中科院公布2017院士候选名单,研究AI的浙大校长吴朝晖名列其中-程序员宅基地

雷锋网AI科技评论按:8月1日,中国科学院正式公布2017年院士增选初步候选人名单,共计有157人入选。在这157名初步候选人中,数学物理学部23人、化学部25人、生命科学和医学学部32人、地学部27人、信息技术科学部20人、技术科学部30人。中科院院士是国家设立的科学技术方面的最高学术称号,每两年增选一次,2015年新增选61人。今年年初,中科院学...

随便推点

Mybatis-Plus基础-程序员宅基地

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、MP的常见注解二、MP排除非表字段的三种方式三、MP的CRUD操作新增查询基本查询方法selectByIdselectBatchIdsselectByMap以条件构造器为参数的查询方法条件构造器常用的条件selectList查询例子select中字段不全出现的处理方法condition的作用创造条件构造器时传入实体对象AllEq的使用selectMap查询例子selectObjsselectCountselectOneLambd

flink实时计算kafka数据,存储到Mysql(Scala版本)_flink从kafka拉取数据实时计算写入mysql-程序员宅基地

Flink实时计算kafka数据,存储到Mysql(Scala版本)本文是在基于搭建好集群执行此项目架构图代码案例一package com.jt.flink.Countimport java.sql.{Connection, DriverManager, PreparedStatement}import java.text.SimpleDateFormatimport org.apache.flink.api.common.restartstrategy.RestartStrategie_flink从kafka拉取数据实时计算写入mysql

java时间格式转换字符转换HuTool进行-程序员宅基地

HuTool简介Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bu

new和malloc区别_结构体使用malloc和new-程序员宅基地

new和malloc区别1.总体来说:(1)malloc和new都是在堆上开辟内存的,malloc只负责开辟内存,没有初始化功能,需要用户自己初始化;new不但开辟内存,还可以进行初始化,如new int(1);意思是在堆上开辟了一个4字节的int形内存,初始值是1;还有new int[2] ();则表示在堆上开辟了一个包含2个整形元素的数组,初始值都为0。(2)malloc是函数,开辟..._结构体使用malloc和new