我正在运行Spark流处理作业。
我的集群配置如下:
Spark version - 1.6.1
spark node config
cores - 4
memory - 6.8 G (out of 8G)
number of nodes - 3
我的工作需要每个节点提供6GB的内存和3个核心。
工作运行了一个小时后,我在工作日志中看到以下错误。
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f53b496a000, 262144, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 262144 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /usr/local/spark/sbin/hs_err_pid1622.log
我在工作目录/应用ID/标准错误中没有看到任何错误。
通常建议使用的xm*设置来运行spark worker是什么?
如何进一步调试此问题?
注:我使用默认设置启动了我的worker和master。
更新:
我发现我的执行者经常因为错误"无法分配内存"
而被添加和删除。
日志:
16/06/24 12:53:47 INFO MemoryStore: Block broadcast_53 stored as values in memory (estimated size 14.3 KB, free 440.8 MB)
16/06/24 12:53:47 INFO BlockManager: Found block rdd_145_1 locally
16/06/24 12:53:47 INFO BlockManager: Found block rdd_145_0 locally
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f3440743000, 12288, 0) failed; error='Cannot allocate memory' (errno=12)