elasticsearch,logstash,Jdbc,elasticsearch,Logstash" /> elasticsearch,logstash,Jdbc,elasticsearch,Logstash" />

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

Jdbc 使用logstash将数据从MySQL索引到ElasticSearch时,会显示Java heapspace错误,jdbc,elasticsearch,logstash,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

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

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

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

input {
  jdbc {
    ...
    jdbc_paging_enabled => true
    jdbc_page_size => 100000
    ...
  }
}
从启用jdbc_分页_的日志存储:

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


尝试使用更多内存运行Logstash:
Logstash/bin/Logstash-J-Xmx2048m-f/home/vatsa/logs/conts out.conf
相同的错误?试着增加更多(30724096等),只要你的机器上有更多的可用内存。我试过了,出现以下错误:无法识别选项“-J”在/home/vatsa/logstash/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:103在/home/vatsa/logstash/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/option/parsing.rb:62处查找选项/home/vatsa/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-2.1.1-java/lib/logstash/runner.rb:79调用org/jruby/RubyProc.java:281在/home/vatsa/logstash/vendor/bundle/jruby/1.9/gems/stud-0.0.22/lib/stud/task.rb:24初始化不知道错误是什么!!如何解决这个问题?