【问题标题】:Magento 2.4 reindex issue with elasticsearch弹性搜索的 Magento 2.4 重新索引问题
【发布时间】:2020-12-20 16:52:48
【问题描述】:

我已经使用 Magento2.4 安装了弹性搜索 (7.x),并且我使用的是 PHP 7.3,当我运行重新索引命令 (bin/magento indexer:reindex) 时出现以下错误。

目录搜索索引过程未知错误: {"error":{"root_cause":[{"type":"cluster_block_exception","re​​ason":"index [magento2_product_1_v1] 被阻止:[TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index 为只读-allow-delete block];"}],"type":"cluster_block_exception","re​​ason":"index [magento2_product_1_v1] 被阻止:[TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-允许删除块];"},"status":429}

如果有人解决了这个问题?请告诉我。

谢谢。

【问题讨论】:

  • 您的 elasticsearch 数据盘中没有可用空间,这就是此消息的含义disk usage exceeded flood-stage watermark, index has read-only-allow-delete blockflood-stage watermark 发生在您已将 95% 的磁盘空间用于节点的数据目录时。您需要释放空间或增加空间。
  • @leandrojmp 你能告诉我如何通过终端做到这一点。我正在使用 linux。
  • @Emily 好运吗?请不要忘记投票并接受答案,如果它有帮助,TIA :)

标签: elasticsearch magento2


【解决方案1】:

问题背景

由于 ES 严重依赖磁盘空间才能正常运行(ES 在文件系统上存储索引),有几个磁盘水印阈值来保护 ES 集群,您达到了称为flood 的最高阈值,这可能会导致重要的功能要破坏的集群(分配新的分片、索引等等)。

如何解决问题

有多种方法可以通过不同的权衡来临时或永久解决问题,我已经写了detailed post explaining the issue and various fixes 请看看并选择最适合您的方法。

【讨论】:

    【解决方案2】:

    只需在命令行中执行以下命令:

    curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_cluster/settings -d '{ "transient": { "cluster.routing.allocation.disk.threshold_enabled": false } }'
    
    curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
    

    这会将您的 ES 安装配置为与 Magento 2 一起正常工作。

    取自:https://www.magemonkeys.com/how-to-solve-cluster_block_exception-too_many_requests-12-disk-usage-exceeded-flood-stage-watermark-index-has-read-only-allow-delete-block-in-magento-2/

    【讨论】: