简介:传统的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冷热集群搭建相关推荐

  1. 干货 | Elasticsearch 冷热集群架构实战

    Elasticsearch 最少必要知识实战教程直播回放 0.题记 Elasticsearch实战数据量级少的时候,单节点就能玩的很6,但是随着数据量的增长,多节点分布式横向扩展集群是大势所趋. 之前 ...

  2. Elasticsearch 冷热集群架构实战

    0.题记 Elasticsearch实战数据量级少的时候,单节点就能玩的很6,但是随着数据量的增长,多节点分布式横向扩展集群是大势所趋. 之前分享过基于时间创建索引及Curator实现索引生命周期管理 ...

  3. ElasticSearch入门 —— 集群搭建

    Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库. 但是,Luce ...

  4. 六,搭建elasticsearch集群搭建

    @Author : By Runsen @Date : 2020/6/12 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘 ...

  5. es集群搭建_滴滴Elasticsearch 集群跨版本升级与平台重构之路

    前不久,滴滴ES团队将维护的30多个ES集群,3500多个ES节点,8PB的数据,从2.3.3跨大版本无缝升级到6.6.1.在对用户查询写入基本零影响和改动的前提下,解决了ES跨大版本协议不兼容.文件 ...

  6. 搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群

    笔记内容:搭建ELK日志分析平台(上)-- ELK介绍及搭建 Elasticsearch 分布式集群 笔记日期:2018-03-02 27.1 ELK介绍 27.2 ELK安装准备工作 27.3 安装 ...

  7. elasticsearch系列八:ES 集群管理(集群规划、集群搭建、集群管理)

    一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...

  8. elasticsearch集群搭建实例

    下个月又开始搞搜索了,几个月没动这块还好没有落下. 晚上在自己虚拟机上搭建了一个简易搜索集群,分享一下. 操作系统环境: Red Hat 4.8.2-16 elasticsearch : elasti ...

  9. ES安装的详细步骤、ES的集群搭建以及ElasticSearch安装时可能出现的问题

    目录 什么是es? 正排索引和倒排索引 安装 ElasticSearch的简单步骤 环境需求 安装ES 下载 设置虚拟机内存 创建用户 安装 ES的目录结构及其作用 配置文件以及作用 修改配置文件el ...

最新文章

  1. 使用硬盘,安装双系统,Win7+CentOS
  2. 武汉.NET俱乐部论坛已经恢复
  3. linux安装mysql、卸载mysql、设置mysql
  4. 提权学习之旅——利用Metasploit提权
  5. Eureka-搭建eureka服务
  6. tried to access method com.google.common.base.Stopwatch
  7. django框架概述
  8. 外卖小程序源码-带流量主-个人用户可接入
  9. __FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程 )(转自IT博客)
  10. 量子科技概念大火,国内现状如何?华为BAT均入局量子计算
  11. 开发中遇到的java小知识
  12. 2021-2025年中国窗帘行业市场供需与战略研究报告
  13. PMP考试扫盲:超详细的PMP考试小白攻略,必看篇
  14. 【懒懒】我不生产笑话,我只是笑话的搬运工 [问题点数:200分]
  15. SN1SLD16 华为SDH全新原包装2xSTM-16光接口板
  16. 迷宫问题的三种实现算法
  17. autojs切换输入法
  18. WebStream生成vue项目报错Error: The project seems to require yarn but it‘s not installed.
  19. 简单控件学习——Lable/HyperLink
  20. QEMU中TCG翻译流程

热门文章

  1. 计算机实训室管理办法,计算机实训室管理及设备管理条例
  2. int在matlab中的作用,int函数表达的是什么意思
  3. c语言中int argc是什么意思,int main(int argc, char*argv[])是什么意思?什么时候用?请举个例子,谢谢...
  4. 无法登录到你的账户解决方案
  5. 大数据时代,票房不再是唯一
  6. 安卓微信7.0地图无法定位问题
  7. domoticz 链接 百度云物联网MQTT注意事项
  8. 【系统学习】环境土壤物理模型HYDRUS1D/2D/3D
  9. 帝国的余辉(ATT)(二)
  10. coreldraw x7 分布_CorelDRAW X7页面顺序怎么设置?