elasticsearch学习总结——配置篇

本文主要探讨了Elasticsearch的配置,包括环境变量的设置,如内存管理和文件描述符限制,以及系统配置如mlockall的使用。进一步讨论了Elasticsearch自身的配置,如路径、集群名、节点名、配置文件格式、索引设置和日志管理。重点强调了内存分配、最大打开文件数的调整以及如何锁定内存以避免交换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境变量

最重要的参数是 -Xmx 来控制进程的最大内存 和 -Xms 控制最小内存。一般来说,分配的内存越大越好。

ES_HEAP_SIZE用来设置堆内存的大小,通常设置最小值为256m,最大值为1gb。

通常推荐将内存最小值和最大值设置为相同值,并将mlockall置为true。


系统配置


文件描述符

通常建议将进程的最大打开文件数设置为32k或者64k。将-Des.max-open-files置为true,将会在进程启动时输出能够打开的最大文件数;或者,通过命令检索max_file_descriptors :curl localhost:9200/_nodes/process?pretty。

内存设置

可以使用参数mlockall来锁定进程地址空间,以防止内存交换。所以,需要将bootstrap.mlockall置为true,并推荐将内存分配的最大值和最小值设为相同值(仅在Unix/Linux操作系统上才有效)。为了检测其是否有效,可以将common.jna记录到DEBUG级别。此外,可以通过设置ulimit -l unlimited 来解决“Unknown mlockall error 0"问题。

注意:如果没有足够的内存分配给机器,可能会导致JVM和shell 会话退出。


elasticsearch设置

elasticsearch的配置文件通常放在ES_HOME/config文件夹下,该文件夹下,有两个文件:elasticsearch.yml用来配置模块信息,而logging.yml用来配置日志信息。

配置文件的内部书写格式是YAML。

通常需要修改的参数如下:

路径

path:

logs: /var/log/elasticsearch

data: /var/data/elasticsearch

集群名(用于自动发现和探测)

cluster:

name: <NAME OF YOUR CLUSTER>

节点名

node:

name: <NAME OF YOUR NODE>

配置文件格式

配置文件的书写格式可以使用JSON或者其他格式。此外,使用es.default. 也可以设置默认值,如果该参数没有在配置文件中定义,就使用该默认值。${...}用来使用环境变量。

也可以通过外部命令来设置配置文件,例如 elasticsearch -f -Des.config=/path/to/config/file

索引设置

在集群中创建索引能够提供自己的设置。例如,如下命令创建了一个基于内存存储而不是默认的基于文件系统的存储。

curl -XPUT http://localhost:9200/kimchy -d \

'

index :

store :

type : memory

'

索引的设置能够进行灵活的设置。这就意味着,在具体的每个节点上创建的索引,都将会默认使用上述配置,即将索引存储在内存中,除非该索引明确的设置了该项。换句话说,任何索引级配置都将覆盖节点级配置。

日志

elasticsearch使用log4j来进行内部的日志抽象。它试图利用YAML来进行配置以便简化log4j的配置,相应的配置文件是config/logging.yml。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值