2016-01-11 3 views
2

Я новичок в ElasticSearch, и у меня есть файл из 180 полей и 12 миллионов строк. Я создал индекс и набираю ElasticSearch и Java Program, но занимает 1,5 часа. Есть ли другой лучший способ загрузить данные в ElasticSearch с сокращенным временем. Я пробовал программу уменьшения карты, но иногда она терпит неудачу и генерирует повторяющиеся записи и занимает больше времени, чем время моей последовательной программы.Каков наилучший способ вставки записей в ElasticSearch?

Может ли кто-нибудь дать хорошие предложения?

+0

Crore and Lakh были добавлены в мой английский словарь thx: D, кроме того, что '10200000' довольно большое число, возможно, вам может понадобиться кластер или что-то. – nafas

+0

Пожалуйста, не используйте данные о местоположении как lakh и crore, так как большинству из нас нужно будет искать их. –

+1

Вы используете массовую загрузку, и вы пробовали разные размеры партии? Вы настроили параметры ES, такие как сброс на диск? Вы видите насыщение процессора, диска или сети? Сколько у вас памяти и сколько для кучи ES? – NikoNyrh

ответ

0

Вы можете отключить спекулятивное исполнение при использовании плагина ES-hadoop, чтобы избежать дублирования записей. Попытайтесь точно настроить размер партии массива api при использовании map-reduce для индексации данных. Для получения дополнительной информации см.: - https://www.elastic.co/guide/en/elasticsearch/hadoop/current/configuration.html и попробуйте изменить настройки по умолчанию, чтобы достичь наилучшей производительности. Также попробуйте увеличить размер кучи ES. Также вы можете использовать плагин apache Tika или Mapper вложений ES для извлечения информации из файла.

Надеюсь, это поможет!