Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 在spark streaming中清理内存_Apache Spark_Out Of Memory_Spark Streaming - Fatal编程技术网

Apache spark 在spark streaming中清理内存

Apache spark 在spark streaming中清理内存,apache-spark,out-of-memory,spark-streaming,Apache Spark,Out Of Memory,Spark Streaming,我们正在使用spark流来处理和聚合事件。 作业从卡夫卡主题读取事件,聚合它们并写入另一个卡夫卡主题。我们正在使用mapWithState函数进行有状态流,并将检查点设置到s3中。由于我们设置了超时(相当长的会话超时),所有状态都会在一段时间内被删除 正如我们所观察到的那样,内存在这段时间内变得越来越满,作业挂起(最终失败)。是否有一种配置方法,使状态不会保留在内存中 有没有清理状态的方法?对于内存清理,您应该依靠垃圾收集。只要有人引用这个状态,它就会一直保持,所以你最好的办法就是将内存提高到工

我们正在使用spark流来处理和聚合事件。 作业从卡夫卡主题读取事件,聚合它们并写入另一个卡夫卡主题。我们正在使用mapWithState函数进行有状态流,并将检查点设置到s3中。由于我们设置了超时(相当长的会话超时),所有状态都会在一段时间内被删除

正如我们所观察到的那样,内存在这段时间内变得越来越满,作业挂起(最终失败)。是否有一种配置方法,使状态不会保留在内存中


有没有清理状态的方法?

对于内存清理,您应该依靠垃圾收集。只要有人引用这个状态,它就会一直保持,所以你最好的办法就是将内存提高到工作所需的数量,或者以某种方式优化它,使GC能够启动并清理所有内容。是的……我同意。我的疑问是,一旦数据被检查,为什么它仍然在内存中。为什么所有的状态对象都在内存中,即使没有收到特定密钥的事件。当旧状态键的事件发生时,有没有一种方法可以明确地告诉您从检查点删除和读取