Выключение и включение кластера или отдельных машин.

59 views
Skip to first unread message

Дмитрий Белоус

unread,
Feb 20, 2015, 1:44:03 PM2/20/15
to elastics...@googlegroups.com
День добрый!

Несколько вопросов по хорошему стилю управления работой кластера.

1. Корректно ли работает команда типа
systemctl stop elasticsearch.service ?
Что если в это время происходит перераспределение шардов? или работает плагин-ривер?
Срабатывают ли соответствующие методы и операции типа close()? Этот вопрос касается, например, закрытия файлов и остановки ривера.

2. Пусть мы решили остановить работу кластера. Нужно ли придерживаться какого-то порядка? Может сначала дата-машины, а потом мастер?

3. Аналогичный вопрос с порядком при включении.

Igor Motov

unread,
Feb 20, 2015, 2:43:06 PM2/20/15
to elastics...@googlegroups.com
Что касается самого elasticsearch - все должно работать в любом порядке. Если не работает - то это баг. С плагин-ривер сложнее - все зависит от плагина, некоторые плагины написаны весьма плохо и перезагрузку могут обработать не правильно.

Дмитрий Белоус

unread,
Feb 25, 2015, 4:34:32 AM2/25/15
to elastics...@googlegroups.com
Запустил перезагрузку мастера и одной из трёх дата-нод (es1) во время индексации.
Для индекса, в который писалась информация, все primary shards запустились нормально, но не все реплики:

vk                  2 r STARTED     2779219   5.2gb <ip-address> es1
vk                  2 p STARTED     2779219   5.2gb <ip-address> es2
vk                  2 r UNASSIGNED                                                  
vk                  0 r STARTED     2778949   5.3gb <ip-address> es3
vk                  0 p STARTED     2778949   5.3gb <ip-address> es2
vk                  0 r UNASSIGNED                                                  
vk                  3 r STARTED     2779360   5.2gb <ip-address> es1
vk                  3 p STARTED     2779360   5.2gb <ip-address> es3
vk                  3 r STARTED     2779360   5.2gb <ip-address> es2
vk                  1 r STARTED     2779399   5.3gb <ip-address> es1
vk                  1 p STARTED     2779399   5.3gb <ip-address> es3
vk                  1 r STARTED     2779399   5.3gb <ip-address> es2
vk                  4 r STARTED     2778649   5.3gb <ip-address> es1
vk                  4 p STARTED     2778649   5.3gb <ip-address> es3
vk                  4 r UNASSIGNED                                      

Логи на всех машинах одинаковы:
[2015-02-25 12:24:48,292][WARN ][cluster.action.shard     ] [es1] [vk][0] sending failed shard for [vk][0], node[fHkh_Ji2QHmUqmaYKfsefg], [R], s[INITIALIZING], indexUUID [tQAcknr3QIiD-wx56nnZvA], reason [engine failure, message [corrupted preexisting index][CorruptIndexException[[vk][0] Preexisting corrupted index [corrupted_ftEi-CApSxKanAhxR15VYw] caused by: CorruptIndexException[codec footer mismatch: actual footer=841753175 vs expected footer=-1071082520 (resource: NIOFSIndexInput(path="/var/lib/elasticsearch/clustername/nodes/0/indices/vk/0/index/_fwx_es090_0.pay"))]
org.apache.lucene.index.CorruptIndexException: codec footer mismatch: actual footer=841753175 vs expected footer=-1071082520 (resource: NIOFSIndexInput(path="/var/lib/elasticsearch/clustername/nodes/0/indices/vk/0/index/_fwx_es090_0.pay"))
        at org.apache.lucene.codecs.CodecUtil.validateFooter(CodecUtil.java:235)
        at org.apache.lucene.codecs.CodecUtil.retrieveChecksum(CodecUtil.java:228)
        at org.elasticsearch.index.store.Store$MetadataSnapshot.checksumFromLuceneFile(Store.java:717)
        at org.elasticsearch.index.store.Store$MetadataSnapshot.buildMetadata(Store.java:613)
        at org.elasticsearch.index.store.Store$MetadataSnapshot.<init>(Store.java:596)
        at org.elasticsearch.index.store.Store.getMetadata(Store.java:186)
...

Что нужно сделать, чтобы реплики создались заново, или как там это происходит?

пятница, 20 февраля 2015 г., 22:43:06 UTC+3 пользователь Igor Motov написал:

Дмитрий Белоус

unread,
Feb 25, 2015, 4:59:23 AM2/25/15
to elastics...@googlegroups.com
Исправил положение следующими командами:
curl -XPUT 'localhost:9200/vk/_settings' -d '
{
   
"index" : {
       
"number_of_replicas" : 0
   
} }
'
curl -XPUT 'localhost:9200/vk/_settings' -d '
{
   
"index" : {
       
"number_of_replicas" : 2
   
} }
'
среда, 25 февраля 2015 г., 12:34:32 UTC+3 пользователь Дмитрий Белоус написал:
Reply all
Reply to author
Forward
0 new messages