Elasticsearch冷热集群搭建
简介:传统的Elasticsearch集群中所有节点均采用相同的配置,然而Elasticsearch并没有对节点的规格一致性做要求,换而言之就是每个节点可以是任意规格,当然这样做会导致集群各节点性能不一致,影响集群稳定性。但是如果有规则的将集群的节点分成不同类型,部分是高性能的节点用于存储热点数据,部分是性能相对差些的大容量节点用于存储冷数据,却可以一方面保证热数据的性能,另一方面保证冷数据的存储,降低存储成本,这也是Elasticsearch冷热分离架构的基本思想。
Hot阶段
Hot 阶段可类比为人类婴儿到青年的阶段,在这个阶段,它会不断地进行知识的输入与输出(数据读写),不断地长高长大(数据量增加)成有用的青年。
由于该阶段需要进行大量的数据读写,因此需要高配置的节点,一般建议将节点内存与磁盘比控制在 32 左右,比如 64GB 内存搭配 2TB 的 SSD 硬盘。Warm 阶段
Warm 阶段可类比为人类青年到中年的阶段,在这个阶段,它基本不会再进行知识的输入(数据写入),主要进行知识输出(数据读取),为社会贡献价值。
由于该阶段主要负责数据的读取,中等配置的节点即可满足需求,可以将节点内存与磁盘比提高到 64~96 之间,比如 64GB 内存搭配 4~6TB 的 HDD 磁盘。
搭建环境:
es版本:7.6.1
集群架构:3个master节点,6个热数据节点,8个温数据节点
解压缩上传es文件
ansible es -m unarchive -a “src=/data/install_tools/elasticsearch-7.6.1-linux-x86_64.tar.gz dest=/home/es copy=yes mode=755”
linux系统参数修改
vi es_file_system.yml
- hosts: estasks:-name: copy filecopy:src: '{{ item.src }}'dest: '{{ item.dest }}'owner: rootgroup: rootmode: 644with_items:- { src: '/data/install/repository-hdfs-7.6.1.zip',dest: '/home/es/repository-hdfs-7.6.1.zip' }- name: demo shellshell: {{ item }} with_items:###创建es用户- useradd es- useradd es -g es###系统优化- echo "vm.max_map_count = 262144" >> /etc/sysctl.conf- echo "vm.swappiness = 1" >> /etc/sysctl.conf- echo "* soft memlock unlimited" >> /etc/security/limits.conf- echo "* hard memlock unlimited" >> /etc/security/limits.conf- echo "* soft nproc unlimited" >> /etc/security/limits.conf- echo "* hard nproc unlimited" >> /etc/security/limits.conf- echo "* soft nofile 655360" >> /etc/security/limits.conf- echo "* hard nofile 655360" >> /etc/security/limits.conf - sed -i 's/^\/dev\/mapper\/centos-swap/#/g' /etc/fstab ###禁用swap- echo '192.1.1.3 es-master' >> /etc/hosts ###对hosts文件进行更新- sysctl -p
执行文件
ansible-playbook es_file_system.yml
安装破解版xpack插件
ansible es -a “mv /home/es/elasticsearch-7.6.1/modules/x-pack-core/x-pack-core-7.6.1.jar /home/es/elasticsearch-7.6.1/modules/x-pack-core/x-pack-core-7.6.1.jar.bak”
本地xpack文件上传
ansible es -m copy -a “src=x-pack-core-7.6.1.jar dest=/home/es/elasticsearch-7.6.1/modules/x-pack-core/”
安装repostory-hdfs插件
ansible es -a ‘echo “y” | /home/es/elasticsearch-7.6.1/bin/elasticsearch-plugin install file:///home/es/repository-hdfs-7.6.1.zip"’
更新jdk环境
ansible es -a “sed -i ‘35a\JAVA_HOME=/home/es/elasticsearch-7.6.1/jdk’ /home/es/elasticsearch-7.6.1/bin/elasticsearch-env‘”
配置ca认证文件
./elasticsearch-certutil ca
./elasticsearch-certutil cert --ca /home/es/elastic-stack-ca.p12 --name es01 --ip 192.1.1.2 --dns es01
ansible es -m copy -a “src=es01.p12 dest=/home/es/elasticsearch-7.6.1/config/certs/”
修改jvm.options
ansible es -m command -a ‘mv /home/es/elasticsearch-7.6.1/config/jvm.options /home/es/elasticsearch-7.6.1/config/jvm.options."
date +%Y-%m-%d
"’
ansible es -m command -a ‘sed -i “36,38 s/^/#&/g” /home/es/elasticsearch-7.6.1/config/jvm.options’
ansible es -m command -a ‘sed -i “48 s/30/75/g” /home/es/elasticsearch-7.6.1/config/jvm.options’
ansible es -m command -a “sed -i ‘s/^# 10-13:-XX:-UseConcMarkSweepGC/10-13:-XX:-UseConcMarkSweepGC/g’ /home/es/elasticsearch-7.6.1/config/jvm.options”
ansible es -m command -a “sed -i ‘s/^# 10-13:-XX:-UseCMSInitiatingOccupancyOnly/10-13:-XX:-UseCMSInitiatingOccupancyOnly/g’ /home/es/elasticsearch-7.6.1/config/jvm.options”
上传本地修改好的elasticsearch-7.6.1,注意区分冷热节点,和ca认证文件以及主机名
ansible es -m command -a ‘mv /home/es/elasticsearch.yml /home/es/elasticsearch-7.6.1/config/elasticsearch.yml."
date +%Y-%m-%d
"’
ansible es -m command -a ‘src=/home/es/elasticsearch.yml dest=/home/es/elasticsearch-7.6.1/config/elasticsearch.yml’
更改es目录用户权限
ansible es -m command -a ‘chown -R es:es /data/es’
安装supervisor进程管理工具
解压缩上传文件
ansible es -m unarchive -a “src=/data/install_tools/meld3-1.0.2.tar.gz dest=/data copy=yes mode=755”
ansible es -m unarchive -a “src=/data/install_tools/supervisor-3.3.3.tar.gz dest=/data copy=yes mode=755”
下发安装文件
#!/bin/sh
yum -y install python-setuptools
cd /data/meld3-1.0.2/
python setup.py install
cd /data/supervisor-3.3.3
python setup.py install
echo_supervisord_conf > /etc/supervisord.conf
远程执行
ansible es -m command -a ‘sh /root/supervisor.sh’
上传本地修改好的supervisord.conf配置文件
es节点配置文件
cluster.name: ###集群名称
node.name: es-master ###节点名称
node.master: true ###定义是否为主节点
node.data: false ##定义是否为数据节点
path.data: /data/es/data ###数据存放路径
path.logs: /data/es/logs ###日志存放路径
bootstrap.memory_lock: true ###这个配置,锁定物理内存地址,防止elasticsearch内存被交换出去,也就是避免es使用swap交换分区,频繁的交换,会导致IOPS变高;
network.host: 0.0.0.0
network.publish_host: ###本机的主机名
###主节点定义,奇数个避免脑裂
discovery.seed_hosts:- es-master:9300- es-master-slave:9300- es-master-slave1:9300
cluster.initial_master_nodes:- es-master- es-master-slave- es-master-slave1
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: full
xpack.security.transport.ssl.keystore.path: certs/es-master.p12
xpack.security.transport.ssl.keystore.password: ###ca文件用户名密码
indices.recovery.max_bytes_per_sec: 300mb ##提升recovery速度,减少数据写入被阻塞的时长
indices.fielddata.cache.size: 40% ##制fielddata允许内存大小,达到HEAP 40% 自动清理旧cache
indices.memory.index_buffer_size: 40% ###默认值是10%,在单个结点上,所有索引的分片占用的最大内存大小,或占用JVM堆内存的百分比
thread_pool.write.queue_size: 5000 ###写入bulk提交###冷热节点配置项
node.attr.caax: hot
至此所有的安装步骤完成可以进行es的启动
Elasticsearch冷热集群搭建相关推荐
- 干货 | Elasticsearch 冷热集群架构实战
Elasticsearch 最少必要知识实战教程直播回放 0.题记 Elasticsearch实战数据量级少的时候,单节点就能玩的很6,但是随着数据量的增长,多节点分布式横向扩展集群是大势所趋. 之前 ...
- Elasticsearch 冷热集群架构实战
0.题记 Elasticsearch实战数据量级少的时候,单节点就能玩的很6,但是随着数据量的增长,多节点分布式横向扩展集群是大势所趋. 之前分享过基于时间创建索引及Curator实现索引生命周期管理 ...
- ElasticSearch入门 —— 集群搭建
Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库. 但是,Luce ...
- 六,搭建elasticsearch集群搭建
@Author : By Runsen @Date : 2020/6/12 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘 ...
- es集群搭建_滴滴Elasticsearch 集群跨版本升级与平台重构之路
前不久,滴滴ES团队将维护的30多个ES集群,3500多个ES节点,8PB的数据,从2.3.3跨大版本无缝升级到6.6.1.在对用户查询写入基本零影响和改动的前提下,解决了ES跨大版本协议不兼容.文件 ...
- 搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群
笔记内容:搭建ELK日志分析平台(上)-- ELK介绍及搭建 Elasticsearch 分布式集群 笔记日期:2018-03-02 27.1 ELK介绍 27.2 ELK安装准备工作 27.3 安装 ...
- elasticsearch系列八:ES 集群管理(集群规划、集群搭建、集群管理)
一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...
- elasticsearch集群搭建实例
下个月又开始搞搜索了,几个月没动这块还好没有落下. 晚上在自己虚拟机上搭建了一个简易搜索集群,分享一下. 操作系统环境: Red Hat 4.8.2-16 elasticsearch : elasti ...
- ES安装的详细步骤、ES的集群搭建以及ElasticSearch安装时可能出现的问题
目录 什么是es? 正排索引和倒排索引 安装 ElasticSearch的简单步骤 环境需求 安装ES 下载 设置虚拟机内存 创建用户 安装 ES的目录结构及其作用 配置文件以及作用 修改配置文件el ...
最新文章
- 使用硬盘,安装双系统,Win7+CentOS
- 武汉.NET俱乐部论坛已经恢复
- linux安装mysql、卸载mysql、设置mysql
- 提权学习之旅——利用Metasploit提权
- Eureka-搭建eureka服务
- tried to access method com.google.common.base.Stopwatch
- django框架概述
- 外卖小程序源码-带流量主-个人用户可接入
- __FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程 )(转自IT博客)
- 量子科技概念大火,国内现状如何?华为BAT均入局量子计算
- 开发中遇到的java小知识
- 2021-2025年中国窗帘行业市场供需与战略研究报告
- PMP考试扫盲:超详细的PMP考试小白攻略,必看篇
- 【懒懒】我不生产笑话,我只是笑话的搬运工 [问题点数:200分]
- SN1SLD16 华为SDH全新原包装2xSTM-16光接口板
- 迷宫问题的三种实现算法
- autojs切换输入法
- WebStream生成vue项目报错Error: The project seems to require yarn but it‘s not installed.
- 简单控件学习——Lable/HyperLink
- QEMU中TCG翻译流程
热门文章
- 计算机实训室管理办法,计算机实训室管理及设备管理条例
- int在matlab中的作用,int函数表达的是什么意思
- c语言中int argc是什么意思,int main(int argc, char*argv[])是什么意思?什么时候用?请举个例子,谢谢...
- 无法登录到你的账户解决方案
- 大数据时代,票房不再是唯一
- 安卓微信7.0地图无法定位问题
- domoticz 链接 百度云物联网MQTT注意事项
- 【系统学习】环境土壤物理模型HYDRUS1D/2D/3D
- 帝国的余辉(ATT)(二)
- coreldraw x7 分布_CorelDRAW X7页面顺序怎么设置?