解决 Elasticsearch 启动错误:failed to obtain node locks

1.遇到的问题:

在使用 Elasticsearch 时,可能会遇到以下错误:

java.lang.IllegalStateException: failed to obtain node locks, tried [[path_to_data]] with lock id [0]; maybe these locations are not writable or multiple nodes were started without increasing [node.max_local_storage_nodes] (was [1])?

如下面所示:

这个错误通常出现在以下两种情况下:

  1. 数据目录不可写:Elasticsearch 无法获取对数据目录的写权限。

  2. 多个节点冲突 :在同一台机器上启动了多个 Elasticsearch 节点,而没有修改 node.max_local_storage_nodes 配置,导致冲突。

2.错误原因分析

Elasticsearch 在启动时,会在指定的 data 目录下创建一个锁文件,以确保同一目录只能由一个节点实例访问。如果出现了多个节点实例在同一目录下启动的情况,Elasticsearch 会抛出 failed to obtain node locks 错误。这通常发生在以下几种情形:

  • 多个 Elasticsearch 实例试图使用相同的数据目录。

  • 数据目录存在写权限问题,导致无法创建锁文件。

2.解决方法:

1. 确保数据目录可写(这一步的目的主要是为了确实是否有权限,一般解决不了这个问题)

确保 D:\servicescape\elasticsearch-6.8.6\data(这是我自己的根据你自己的来就行) 目录对 Elasticsearch 进程是可写的。可以尝试以下步骤:

  • 检查权限 :右键点击 data 文件夹,选择 属性 ,然后查看 安全 选项卡,确保 Elasticsearch 进程(或者当前用户)对该文件夹有写权限。

  • 清空数据目录:如果你不需要保留现有的数据,可以尝试删除该目录下的所有文件,然后重启 Elasticsearch。

2. 修改 elasticsearch.yml 配置文件

Elasticsearch 配置文件 elasticsearch.yml 中有一个参数 node.max_local_storage_nodes,它决定了同一台机器上最多可以启动多少个 Elasticsearch 节点。如果你希望在同一台机器上启动多个节点,可以通过修改此配置来解决问题。

默认情况下,该参数的值是 1,表示每个数据目录只允许一个节点运行。我们可以通过增加该值来允许多个节点使用相同的数据目录。以下是具体操作步骤:

  1. 找到配置文件 : Elasticsearch 的 elasticsearch.yml 配置文件通常位于安装目录的 config 文件夹下,比如:D:\servicescape\elasticsearch-6.8.6\config\elasticsearch.yml

  2. 修改配置文件 : 打开 elasticsearch.yml 配置文件,找到(或者添加)以下配置项:

node.max_local_storage_nodes: 2

这将允许最多两个节点使用相同的数据目录。如果你希望使用更多节点,可以根据需要调整该值。

3.保存配置文件重启 Elasticsearch

修改配置文件后,保存并关闭文件,然后重新启动 Elasticsearch。

如果你是通过命令行启动 Elasticsearch,可以使用以下命令:

bin\elasticsearch.bat

重启之后:

尽管通过修改 node.max_local_storage_nodes 配置可以解决问题,但最好为每个节点使用不同的数据目录 我感觉这只是临时的解决方案,不然节点会越来越多,

3.总结:

通过修改 elasticsearch.yml 中的 node.max_local_storage_nodes 配置项,可以允许多个节点使用相同的数据目录,从而解决启动时的 failed to obtain node locks 错误。然而,为了确保 Elasticsearch 的稳定性和性能,建议为每个节点配置不同的数据目录。

相关推荐
辰宇信息咨询2 小时前
3D自动光学检测(AOI)市场调研报告-发展趋势、机遇及竞争分析
大数据·数据分析
珠海西格3 小时前
“主动预防” vs “事后补救”:分布式光伏防逆流技术的代际革命,西格电力给出标准答案
大数据·运维·服务器·分布式·云计算·能源
创客匠人老蒋3 小时前
从数据库到智能体:教育企业如何构建自己的“数字大脑”?
大数据·人工智能·创客匠人
2501_948120154 小时前
基于大数据的泄漏仪设备监控系统
大数据
Spey_Events5 小时前
星箭聚力启盛会,2026第二届商业航天产业发展大会暨商业航天展即将开幕!
大数据·人工智能
AC赳赳老秦5 小时前
专利附图说明:DeepSeek生成的专业技术描述与权利要求书细化
大数据·人工智能·kafka·区块链·数据库开发·数据库架构·deepseek
GeeLark5 小时前
#请输入你的标签内容
大数据·人工智能·自动化
智能相对论6 小时前
2万台?九识无人车车队规模靠谱吗?
大数据
小小王app小程序开发7 小时前
淘宝扭蛋机小程序核心玩法拆解与技术运营分析
大数据·小程序
得物技术8 小时前
从“人治”到“机治”:得物离线数仓发布流水线质量门禁实践
大数据·数据仓库