Spark Streaming Job保持不断增长的内存

Aas*_*mar 5 memory-leaks apache-spark spark-streaming

我在单机上以独立模式运行spark v 1.6.1,具有64GB RAM和16cores。

我已经创建了五个工作程序实例,以在独立模式下创建五个执行程序,一个工作程序节点中不能有一个以上的执行程序。

组态:

SPARK_WORKER_INSTANCES 5

SPARK_WORKER_CORE 1

SPARK_MASTER_OPTS“ -Dspark.deploy.default.Cores = 5”

所有其他配置均为默认设置 spark_env.sh

我正在以1分钟的间隔运行Spark Streaming直接Kafka作业,该作业从kafka获取数据,经过一些聚合后将数据写入mongo。

问题:

当我启动主服务器和从服务器时,它将启动一个主进程和五个工作进程。每个内存仅消耗约212 MB的ram。当我提交作业时,它再次创建5个执行程序进程和1个作业进程,并且内存使用量总计增长到8GB,并且随着时间的推移(缓慢地)增长,也没有数据处理。

我们将持久化的rdd缓存也设置spark.cleaner.ttl为600。但是内存仍在增长。

还有一件事,我看到了合并的SPARK-1706,这也是为什么我无法在worker.and spark_env.sh文件中创建多个执行程序的原因,设置与执行程序相关的任何配置都在“仅YARN”模式下进行。

任何帮助将不胜感激,

谢谢