使用logstash将数据从MySQL索引到ElasticSearch时,它会显示Java heapspace错误

时间:2016-01-26 07:51:37

标签: jdbc elasticsearch logstash

MySQL表有191000行。当我尝试下面它运行一段时间并显示此错误:

logstash/bin/logstash -f /home/vatsa/logs/conts-out.conf  
  

java.lang.OutOfMemoryError:Java堆空间   将堆转储到/home/vatsa/logstash/heapdump.hprof   间隔异常冲洗缓冲区! {:error =>" Java堆空间",:class =>" Java :: JavaLang :: OutOfMemoryError",:level =>:warn}   错误:您的应用程序使用的内存超过了1G的安全限制。   指定-J-Xmx #### m以增加它(#### =大小以MB为单位)。   为完整的OutOfMemoryError堆栈跟踪指定-w

我不明白错误。如何解决这个问题。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试启用查询分页。这将限制从MySQL检索的元素数量。相应的设置如下:

input {
  jdbc {
    ...
    jdbc_paging_enabled => true
    jdbc_page_size => 100000
    ...
  }
}

来自jdbc_paging_enabled的documentation:

  

这将导致sql语句被分解为多个查询。每个查询都将使用限制和偏移来共同检索完整的结果集。