【问题标题】:elasticsearch fail to start gives erorrelasticsearch 启动失败给出错误
【发布时间】:2020-03-31 18:22:40
【问题描述】:

当我运行命令启动 elasticsearch ..

/elasticsearch -f

给出一堆错误,例如

ElasticSearchIllegalStateException[获取节点锁失败,以下位置是否可写?:[/home/anish/elasticsearch/data/elasticsearch]]

IOException[未能获得/home/anish/elasticsearch/data/elasticsearch/nodes/49的锁定]

  IOException[Cannot create directory: /home/anish/elasticsearch/data/elasticsearch/nodes/49]

不知道如何摆脱它..请帮助

【问题讨论】:

    标签: java ruby-on-rails ruby ruby-on-rails-3 elasticsearch


    【解决方案1】:

    /etc/sysconfig/elasticsearch 中查找ES_USERES_GROUP 的值——两者的默认设置都是elasticsearch。如果该用户无法写入您的数据目录,那么您将看到此错误。由于数据目录似乎在您的主目录下,这可能是问题所在。您可以修改ES_USERES_GROUP 的设置或更改数据目录的权限。

    【讨论】:

    • 在我的 .deb 包的默认设置中,配置文件是 /etc/default/elasticsearch 并且 ES_USER 和 ES_USER 已被注释,需要取消注释才能使守护进程正常启动
    【解决方案2】:

    此错误可能有多种原因,Elasticsearch 将其数据存储在文件系统中,其位置在elasticsearch.yml 中指定,并且在启动 elasticsearch 时,它会检查是否可以将数据写入该位置,如果是的话,然后它将获取该位置的锁定,以便其他进程无法写入该位置,从而防止数据丢失和损坏。

    另外,这取决于 Elasticsearch 的版本,在当前的主要版本 7.X 中,Elasticsearch 改变了它在同一台机器上有多个安装时写入同一位置的方式,而在此之前它使用node.max_local_storage_nodes 来允许在同一台机器上进行多次安装。

    解决问题的提示

    1. 检查是否有多个 Elasticsearch 进程正在运行并且您打算这样做。
    2. 检查 Elasticsearch 是否具有对该位置的写入权限,如上一个答案中所述。
    3. 检查elasticsearch的版本,看看你是否使用了正确的配置。

    【讨论】:

      猜你喜欢
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 2013-05-19
      • 1970-01-01
      • 2022-11-13
      • 2021-05-18
      相关资源
      最近更新 更多