Elasticsearch的配置学习笔记

文/朱季谦
Elasticsearch是一个基于Lucene的搜索服务器。它提供一个分布式多用户能力的全文搜索引擎,基于RESTful web接口,Elasticsearch是用Java语言开发的。

关于Elasticsearch系列笔记,主要从Elasticsearch的配置、核心组件、架构设计、使用语法这四个方面来记录学习;

本学习总结主要依赖《Elasticsearch实战与原理解析》一书的读书笔记,我把自己阅读过程当中整理的读书笔记做成了一张脑图,上传至了我的GitHub。

image

Elasticsearch的配置

Elasticsearch的配置比较重要有三个,分别是elasticsearch.yml,jvm.options,log4j2.properties,这些配置文件都默认放在/config/目录下。

  • elasticsearch.yml:用于配置Elasticsearch基本信息,主要包括集群、节点、ip、端口等;
  • jvm.options:配置Elasticsearch依赖的JVM信息,ES是Java写的,当然需要考虑堆大小的分配;
  • log4j2.properties:用于配置Elasticsearch日志记录中的各个属性;

elasticsearch.yml关键参数

#集群名称,默认是elasticsearch,用于区分同一网段下的不同集群
cluster.name: my-application
#集群当中的节点名称,用于区分同一个集群下的不同节点
node.name: node-1
#存储index索引数据的路径,可以存储到多个路径,例如:path.data: /temp/data1,/temp/data2,/temp/data3,
path.data: /temp/data
#日志文件的存储路径
path.logs: /temp/logs
#当前节点的ip地址,允许通过外部服务器访问本地ES服务:
network.host: 0.0.0.0
#该节点有机会成为master节点
node.master: true
#该节点能够存储数据
node.data: true#######################设置head插件能够访问es###########
#设置可以跨域,默认为false
http.cors.enabled: true
#支持所有域名访问
http.cors.allow-origin: "*"
#跨域允许设置的头信息,默认为X-Requested-With,Content-Type,Content-Length
http.cors.allow-headers : X-Requested-With,Content-Type,Content-Length
#端口
http.port: 9250#设置集群主机列表,每个值应采用host:port,可实现主动发起ping集群主机信息
discovery.zen.ping.unicast.hosts: ["host1","host2","host3"]
#该参数表示只有足够的master候选节点时,才可以选举出一个master,该参数的值为master候选节点数量/2+1
#例如:如果有3个master候选节点,100个数据节点。则quorum=3/2+1=2
discovery.zen.minimum_master_nodes: 2
#表示设置了节点与节点之间连接ping命令执行的超时时长。
discovery.zen.fd.ping_timeout: 100s
discovery.zen.ping.timeout: 100s
#主动关闭多播模式
discovery.zen.ping.multicast.enabled: false#默认90%,超过阈值后,所有索引都被修改为只读不可写状态
cluster.routing.allocation.disk.watermark.flood_stage: 90%
#默认90%,超过阈值后,索引的分片将不会被分配到该主机
cluster.routing.allocation.disk.watermark.high: 90%

elasticsearch.yml配置当中,discovery.zen相关的参数设置,主要是用来实现集群当中节点自动发现机制的,存在多播模式与单播模式。

  • 多播模式:对某一个网络上的所有主机发送数据包。
  • 单播模式:对特定的主机进行数据传送。

在Elasticsearch中,发现机制默认被配置为使用单播模式,以防止节点无意中加入集群。

jvm.options配置信息

Elasticsearch官方中文文档上介绍道:“你几乎可以不去调整 Java 虚拟机 (JVM) 参数,如何非要做的话,你最有可能去修改heap size。”

也就是说,这个配置文件里,一般只需要关注堆大小的设置即可,因为每一个运行环境服务器都不一样,可以根据服务器具体情况来调整jvm.options里的堆大小。

#最小堆的值
-Xms1024m
#最大堆的值
-Xmx1024m
#表示老年代占用75%时就会触发垃圾回收
-XX:CMSInitiatingOccupancyFraction=75

设置规则一般如下:

  • 最小堆Xms与最大堆Xmx设置值相同,避免当堆大小不够时再进行动态调整出现不确定因素;

Elasticsearch性能调优与JVM性能调优类似,都是通过JVM参数来进行调整优化,至于如何能有效调整,后续我若在实践过程中涉及过,会补充这块的内容。

log4j2.properties配置信息

该配置是Elasticsearch日志记录中的各个属性设置,包括日志保存设置、日志保留天数、慢日志、日志滚动等。

比较需要关注的一条参数是:

#将日志滚动到路径后的数据里
appender.rolling.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-%i.log.gz
#使用基于时间的滚动策略
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
# 每天滚动一次日志
appender.rolling.policies.time.interval = 1
# 日志文件每达到 1GB 大小进行一次滚动
appender.rolling.policies.size.size = 1GB

所谓滚动日志,就是将当天的日志整理成一个以某种各种命名(例如时间)的文件,可存储历史的日志文件记录。我们在服务器的log目录下,经常看到类似的历史日志被打包成压缩包形式,这类被打包成压缩包的历史日志文件,即为回滚日志。我们经常在mysql里听到过日志回滚,其实,回滚的,即是这些原来被回滚存放在log目录下的日志文件。

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/193647.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

还有医学生不知道这个免费好用的在线样本量计算器吗?

相信很多小伙伴都有过这样的经历:做科研设计、撰写论文,设计好主题后摆在眼前的是你最头痛的问题——样本量计算。事实上,样本量计算往往是临床医生做临床研究设计的一大障碍,是临床研究设计、临床知识经验以及统计学知识的结合。…

高阶智驾必上「激光雷达」,一场车企的集体投票

‍作者 | 张祥威 编辑 | 德新 2023年尾上市的这一批车型中,以问界新M7、理想MEGA、小鹏X9、智界S7和极氪007最为典型,它们的头顶大多搭载了一颗激光雷达,有的车型比如小鹏X9,甚至在前大灯位置配置了两颗激光雷达。 这是为实现高…

Pinia 及其数据持久化 Vue新一代状态管理插件

黑马前端Vue新一代状态管理插件Pinia快速入门视频教程 Pinia主页 超级简单,不需要耐心 pinia :新一代的VueX 1. 安装 npm install pinia2. 在main.js中引入 import { createPinia } from pinia app.use(createPinia())3. 新建stores目录&#xff0c…

生命在于学习——主板跳线的学习

一、前言 好吧,又是一个我之前没接触过的东西,秉持遇到什么就学什么的精神,来学! 我一发小来找我,问我关于跳线的事情,我就一个表情: 好吧,我承认,纵观我23岁&#xf…

Looking for downloadable pre-built shared indexes关闭

这个功能很烦,把他关闭就行了 PyCharm的“Looking for downloadable pre-built shared indexes”是指PyCharm IDE中的一个功能,用于搜索和下载可共享的预构建索引。 这个功能的主要用途是帮助开发人员在开发过程中快速地获取和使用预构建的索引,以提高…

Leo赠书活动-08期 【程序员到架构师演变】文末送书

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 赠书活动专栏 ✨特色专栏:…

91.移动零(力扣)

问题描述 代码解决以及思想 class Solution { public:void moveZeroes(vector<int>& nums) {int left 0; // 左指针&#xff0c;用于指向当前非零元素应该放置的位置int right 0; // 右指针&#xff0c;用于遍历数组int len nums.size(); // 数组长度while …

Xilinx Kintex7中端FPGA解码MIPI视频,基于MIPI CSI-2 RX Subsystem架构实现,提供工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 MIPI 编解码方案3、本 MIPI CSI2 模块性能及其优缺点4、详细设计方案设计原理框图OV5640及其配置权电阻硬件方案MIPI CSI-2 RX SubsystemSensor Demosaic图像格式转换Gammer LUT伽马校正VDMA图像缓存AXI4-Stream toVideo OutHDMI输出 5、…

Nutz框架如何自定义SQL?

Nutz框架基本的简单sql已经封装了&#xff0c;但是一些叫为复杂的sql需要手动去写&#xff0c;那如何实现像Mybatis那样通过配置文件编写呢&#xff1f;如有不明白详见官方文档&#xff1a;自定义 SQL - Nutzhttps://nutzam.com/core/dao/customized_sql.html#ndoc-4 一 新建…

通过maven命令手动上传jar私服Nexus

Nexus3在界面上传组件时报&#xff1a; Ext.JSON.decode(): Youre trying to decode an invalid JSON String: 查找了很多资料&#xff0c;都没有解决。有哪位大佬知道的评论告诉一下&#xff0c;万分感谢。 于是换成maven命令上传&#xff1a; mvn deploy:deploy-file -Dgr…

虹科干货丨Lambda数据架构和Kappa数据架构——构建现代数据架构

文章来源&#xff1a;虹科云科技 虹科干货丨Lambda数据架构和Kappa数据架构——构建现代数据架构 如何更好地构建我们的数据处理架构&#xff0c;如何对IT系统中的遗留问题进行现代化改造并将其转变为现代数据架构&#xff1f;该怎么为你的需求匹配最适合的架构设计呢&#xf…

PDF文件中更改 PDF 文本颜色的最有效解决方案

PDF 是最常用的文档类型之一&#xff0c;也是商业中使用的首选文档。在工作中&#xff0c;我们经常需要修改PDF的文本内容&#xff0c;转换格式&#xff08;如PDF转Word&#xff0c;PDF转Excel等&#xff09;&#xff0c;合并PDF&#xff0c;以达到更好的工作效果。 然而&…

wpf devexpress数据统计

GridControl允许显示总结信息关于单个数据行分组。例如&#xff0c;你可以显示记录数量&#xff0c;最小和最大值。这个统计信息可以叫做数据统计。 创建统计 GridControl 支持总结和分组统计&#xff1a; 总结统计 - 一个总结函数值计算对于所有列和视图显示统计面板和固定统…

选择护眼台灯的标准,挑选学生护眼台灯必看攻略

台灯如何选择&#xff0c;随着人们生活水平的提高及科技的不断进步&#xff0c;台灯的品质也得到了极大的提高&#xff0c;在生活中很多时候都需要使用台灯&#xff0c;但是市面上的台灯那么多&#xff0c;台灯如何选择&#xff1f; &#xff08;1&#xff09;显色指数 显色指…

LeetCode【41】缺失的第一个正数

题目&#xff1a; 分析&#xff1a; 第i个位置的数&#xff0c;如果再数组 0到length-1范围内&#xff0c;则将其放到对应的位置&#xff1b; 再遍历一遍数组&#xff0c;找到第一个不在位置i的正数数字&#xff0c;即为所求 思路&#xff1a;https://blog.csdn.net/weixin_45…

Mac 本地部署thinkphp8【部署环境以及下载thinkphp】

PHP的安装以及环境变量配置 1 PHP安装&#xff1a;在终端输入brew install php 这里是PHP下载的最新的 如果提示‘brew’找不到&#xff0c;自己搜索安装吧&#xff0c; 不是特别难 2 环境变量配置 终端输入vim ~/.bash_profile 输入export PATH"/usr/local/Cellar/php/8.…

macOS使用conda初体会

最近在扫盲测序的一些知识 其中需要安装一些软件进行练习&#xff0c;如质控的fastqc&#xff0c;然后需要用conda来配置环境变量和安装软件。记录一下方便后续查阅学习 1.安装miniconda 由于我的电脑之前已经安装了brew&#xff0c;所以我就直接用brew安装了 brew install …

百度文心一言

1分钟了解一言是谁&#xff1f; 一句话介绍【文心一言】 我是百度研发的人工智能模型&#xff0c;任何人都可以通过输入【指令】和我进行互动&#xff0c;对我提出问题或要求&#xff0c;我能高效地帮助你们获取信息、知识和灵感哦 什么是指令&#xff1f;我该怎么和你互动&am…

优秀智慧园区案例 - 中建科技产业园(中建·光谷之星),万字长文解析先进智慧园区建设方案经验

一、项目背景 中建科技产业园&#xff08;中建光谷之星&#xff09;&#xff0c;位于武汉光谷中心城、中国&#xff08;湖北&#xff09;自贸试验区武汉片区双核心区&#xff0c;光谷发展主轴高新大道北侧&#xff0c;建筑面积108万平米&#xff0c;是中建三局“中建之星”和“…

2023鸿蒙预定未来,环境搭建学习

鸿蒙开发基础知识 鸿蒙的基本概念和特点 鸿蒙&#xff08;HarmonyOS&#xff09;是华为公司开发的一款全场景分布式操作系统。它的设计目标是为各种设备提供统一的、无缝的用户体验。鸿蒙的核心特点包括以下几个方面&#xff1a; 分布式架构&#xff1a;鸿蒙采用分布式架构&…