Подтвердить что ты не робот

Курьер Fetch: осколки не удались

Почему я получаю эти предупреждения после добавления дополнительных данных в мой elasticsearch? И предупреждения меняются каждый раз, когда я просматриваю панель.

"Courier Fetch: 30 из 60 осколков не удалось".

Example 1

Example 2

Подробнее:

Это единственная node на CentOS 7.1

/etc/elasticsearch/elasticsearch.yml

index.number_of_shards: 3
index.number_of_replicas: 1

bootstrap.mlockall: true

threadpool.bulk.queue_size: 1000
indices.fielddata.cache.size: 50%
threadpool.index.queue_size: 400
index.refresh_interval: 30s

index.number_of_shards: 5
index.number_of_replicas: 1

/usr/share/elasticsearch/bin/elasticsearch.in.sh

ES_HEAP_SIZE=3G

#I use this Garbage Collector instead of the default one.

JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC"

статус кластера

{
  "cluster_name" : "my_cluster",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 61,
  "active_shards" : 61,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 61
}

сведения о кластере

{
  "cluster_name" : "my_cluster",
  "nodes" : {
    "some weird number" : {
      "name" : "ES 1",
      "transport_address" : "inet[localhost/127.0.0.1:9300]",
      "host" : "some host",
      "ip" : "150.244.58.112",
      "version" : "1.4.4",
      "build" : "c88f77f",
      "http_address" : "inet[localhost/127.0.0.1:9200]",
      "process" : {
        "refresh_interval_in_millis" : 1000,
        "id" : 7854,
        "max_file_descriptors" : 65535,
        "mlockall" : false
      }
    }
  }
}

Мне интересно, как "mlockall": false, потому что на yml я написал bootstrap.mlockall: true

журналы

много строк, например:

org.elasticsearch.common.util.concurrent.EsRejectedExecutionException: rejected execution (queue capacity 1000) on [email protected]a9a34f5
4b9b3361

Ответ 1

Это, скорее всего, указывает на то, что существует проблема с состоянием вашего кластера. Не зная больше о вашем кластере, не так много можно сказать.

Ответ 2

Для меня настройка threadpool search queue_size решила проблему. Я попробовал несколько других вещей, и это тот, кто его решил.

Я добавил это в свой elasticsearch.yml

threadpool.search.queue_size: 10000

а затем перезапустил поиск elasticsearch.

Рассуждение... (из документов)

A node содержит несколько пулов потоков, чтобы улучшить то, как потоки потребление памяти управляется в пределах node. Многие из этих бассейнов также имеют связанные с ними очереди, которые позволяют отложенным запросам быть вместо отказа.

и для поиска в частности...

Для операций подсчета/поиска. По умолчанию фиксируется с размером int ((# доступных_процессоров * 3)/2) + 1, queue_size 1000.

Для получения дополнительной информации вы можете обратиться к elasticsearch docs here...

Мне не удалось найти эту информацию, поэтому я надеюсь, что это поможет другим!

Ответ 4

Я получил эту ошибку, когда в моем запросе отсутствовала заключительная цитата:

field:"value

Courier Fetch: 5 of 35 shards failed.

В моих журналах ElasticSearch я вижу эти исключения:

Caused by: org.elasticsearch.index.query.QueryShardException:
    Failed to parse query [field:"value]
...
Caused by: org.apache.lucene.queryparser.classic.ParseException: 
    Cannot parse 'field:"value': Lexical error at line 1, column 13.  
    Encountered: <EOF> after : "\"value"

Ответ 5

Я согласен с мнением @Philip, но нужно перезагрузить elasticsearch хотя бы на Elasticsearch >= 1.5.2, потому что вы можете динамически установить threadpool.search.queue_size.

curl -XPUT http://your_es:9200/_cluster/settings
{
    "transient":{
        "threadpool.search.queue_size":10000
    }
}

Ответ 6

из Elasticsearch> = версия 5, невозможно обновить настройки кластера для thread_pool.search.queue_size с помощью API _cluster/settings. В моем случае обновление yml файла ElasticSearch Node также не вариант, поскольку в случае сбоя узла в результате автоматического масштабирования кода будет выведен другой узел ES с настройками yml по умолчанию.

У меня есть кластер с 3 узлами и 400 активными основными сегментами с 7 активными потоками для размера очереди 1000. Увеличение числа узлов до 5 с аналогичной конфигурацией решило проблему, так как запросы распределяются по горизонтали на более доступные узлы.

Ответ 7

это не сработает наasticsearch 5.6.

{
"error": {
    "root_cause": [
        {
            "type": "remote_transport_exception",
            "reason": "[colmbmiscxx.xx][172.29.xx.xx:9300][cluster:admin/settings/update]"
        }
    ],
    "type": "illegal_argument_exception",
    "reason": "transient setting [threadpool.search.queue_size], not dynamically updateable"
},
"status": 400

}