Потеря данных Elasticsearch при индексировании с массовым процессором «в памяти»

Я генерирую 4 миллиона документов и сохраняю их с помощью массового процессора. Когда я устанавливаю index.store.type в память, я получаю какие-то странные NPE, они проходят, но, в конце концов, проиндексировано около 2 миллионов документов. Я пытаюсь вставить 800 документов (очень маленьких, несколько КБ) за пакет, 3 потока с кучей 1 ГБ. Используя тот же код с index.store.type, установленным в simplefs, вставка 3k документов/пакетов с 4 потоками проходит гладко (конечно, большие настройки не будут работать и для «памяти»), и конечный результат — 4mil проиндексированных документов, как и ожидалось. Есть ли какие-либо дополнительные настройки, которые я должен установить, чтобы он работал с настройкой «память»? У меня есть 1 узел, 5 осколков, 1 реплика.


person Marcin Mikołajczyk    schedule 04.08.2014    source источник


Ответы (1)


Если вы храните в памяти только один узел, вам нужна реплика? Это может закончиться двумя копиями на одном сервере.

Я бы посоветовал вам добавить дополнительные узлы, чтобы масштабировать нагрузку и использовать 5 используемых вами осколков, иначе осколки бессмысленны, хотя вы не сможете добавить их обратно позже.

5 КБ * 4 миллиона — это 20 ГБ. Вы не говорите, сколько у вас оперативной памяти, поэтому трудно сказать, поместятся ли все ваши документы в память после того, как все дополнительные данные индексации будут добавлены сверху.

person stuart-warren    schedule 13.08.2014
comment
Я не очень понимаю, для чего эта реплика. Что касается осколков, они бессмысленны, если я вставляю их массово с 4 потоками? - person Marcin Mikołajczyk; 14.08.2014
comment
Но, в конце концов, вы сосредоточили мое внимание на проблеме с оперативной памятью и на том, насколько большим может быть индекс. Я отключил хром (который съел много моей оперативной памяти) и увеличил размер кучи ES до 2 ГБ, и я смог без проблем проиндексировать 3 миллиона документов, спасибо! - person Marcin Mikołajczyk; 14.08.2014
comment
Реплики предназначены для резервирования, это еще одна копия ваших данных, обычно на другом сервере. Это удобно, если сервер с некоторыми из основных осколков самопроизвольно сгорает. Затем осколки резервных копий должны стать основными, а новые осколки резервных копий могут быть где-то инициализированы. - person stuart-warren; 15.08.2014