提问人:Nicholas O'Connell 提问时间:11/17/2023 最后编辑:ValNicholas O'Connell 更新时间:11/17/2023 访问量:35
OpenSearch reIndex() 操作期间出现 PHP 客户端错误
PHP Client error during OpenSearch reIndex() operation
问:
我设置了 Amazon OpenSearch Service。我正在我的 Laravel php 服务中使用: 版本 7.17.2 来创建一个客户端。我知道这是用于 OpenSearch 的错误客户端,但它应该兼容,我们刚刚切换到 OpenSearch 并且尚未切换客户端,因为在这个特定的代码库中这并不容易。"elasticsearch/elasticsearch"
我正在尝试运行 reIndex() 来修复一个复杂的错误,导致我的一个索引出现映射爆炸(超过 1000 个字段映射),reIndex 函数在参数中有一个小的无痛脚本,用于将问题字段的格式从对象更改为嵌套字段并相应地更改字段映射。
我已经在 aws 上拍摄了索引的快照,并将它们还原到运行相同版本的 OpenSearch 的本地运行的 docker 容器中。我的 reIndex 操作在我的 docker 容器中成功本地运行,尽管 cpu 使用率很高。
当我尝试在我设置的 aws 服务上运行相同的操作时,出现以下错误:
production.ERROR: No alive nodes found in your cluster {"exception":"[object] (Elasticsearch\\Common\\Exceptions\\NoNodesAvailableException(code: 0): No alive nodes found in your cluster at /var/www/html/vendor/elasticsearch/elasticsearch/src/Elasticsearch/ConnectionPool/StaticNoPingConnectionPool.php:64)"} []
In StaticNoPingConnectionPool.php line 64:
No alive nodes found in your cluster
在操作期间,我注意到 aws OpenSearch 集群中的 cpu 和内存使用率非常高 ( >95%),这种高资源使用率能否解释为什么我的客户端认为 OpenSearch 集群无响应?该错误仅在操作结束时发生,因为创建的新索引具有几乎相同数量的 lucene 文档,但是操作会停止,因为我已设置为运行的别名开关因此永远不会发生。
答:
答案是肯定的。我将我的 OpenSearch 服务从 m6g.large.search 升级到 m6g.2xlarge.search,并且 reIndex 成功运行,而 php 服务认为集群中的所有节点都已关闭。
评论