在一个spark作业中,我们正在使用0f~120GB的文件在elasticsearch中创建索引。该文件分为3830个patition。作业开始将数据放入elasticsearch索引后,垃圾收集器消息显示在以java.lang.OutOfMemoryError: Java heap space
结尾的elasticsearch日志中。
[WARN ][monitor.jvm] [gc][old][209][6] duration [57.6s], collections [1]/[57.9s], total [57.6s]/[3.7m], memory [24.2gb]->[18.7gb]/[24.9gb], all_pools {[young] [8.6mb]->[10.3mb]/[532.5mb]}{[survivor] [66.5mb]->[0b]/[66.5mb]}{[old] [24.2gb]->[18.7gb]/[24.3gb]}
java.lang.OutOfMemoryError: Java heap space
我重新启动了elasticsearch节点并再次运行作业,但结果是一样的。
以下是spark config
中的elasticsearch属性conf.set("es.nodes", "xx.xx.xxx.xx:9200")
conf.set("es.scroll.size", "10000")
conf.set("es.index.auto.create", "true")
我们正在使用Spark 1.6和elasticsearch 2.0.2。集群中有三个弹性搜索节点,每个节点有25 GB的堆空间。