Oi pessoal,
Complementando a resposta do Natan ...
Passei por esse problema hoje com o elasticsearch 5. Nessa versão ele, por padrão, reserva 2GB pra heap do java (que roda por trás) quando ele sobe o servidor. Assim quando não existe essa quantidade de memória suficiente ele dá esse erro ao tentar rodar.
Resolvi da seguinte maneira... No arquivo jvm.options
tem um trecho onde fica essa configuração padrão.
################################################################
## IMPORTANT: JVM heap size
################################################################
##
## You should always set the min and max JVM heap
## size to the same value. For example, to set
## the heap to 4 GB, set:
##
## -Xms4g
## -Xmx4g
##
## See https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
## for more information
##
################################################################
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms2g
-Xmx2g
Basta reduzir a capacidade de memória para um valor mais dentro da realidade pra uma máquina de desenvolvimento que em geral tem que rodar vários outros serviços concorrendo por esse recurso.
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms512m
-Xmx512m
Abraços!