Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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 基于EMR集群的GC优化_Apache Spark_Garbage Collection_Jvm_Emr_Amazon Emr - Fatal编程技术网

Apache spark 基于EMR集群的GC优化

Apache spark 基于EMR集群的GC优化,apache-spark,garbage-collection,jvm,emr,amazon-emr,Apache Spark,Garbage Collection,Jvm,Emr,Amazon Emr,我在EMR上运行一个用Scala编写的Spark作业,每个执行器的stdout都充满了GC分配失败 2016-12-07T23:42:20.614+0000: [GC (Allocation Failure) 2016-12-07T23:42:20.614+0000: [ParNew: 909549K->432K(1022400K), 0.0089234 secs] 2279433K->1370373K(3294336K), 0.0090530 secs] [Times: user=

我在EMR上运行一个用Scala编写的Spark作业,每个执行器的stdout都充满了GC分配失败

2016-12-07T23:42:20.614+0000: [GC (Allocation Failure) 2016-12-07T23:42:20.614+0000: [ParNew: 909549K->432K(1022400K), 0.0089234 secs] 2279433K->1370373K(3294336K), 0.0090530 secs] [Times: user=0.11 sys=0.00, real=0.00 secs] 
2016-12-07T23:42:21.572+0000: [GC (Allocation Failure) 2016-12-07T23:42:21.572+0000: [ParNew: 909296K->435K(1022400K), 0.0089298 secs] 2279237K->1370376K(3294336K), 0.0091147 secs] [Times: user=0.11 sys=0.01, real=0.00 secs] 
2016-12-07T23:42:22.525+0000: [GC (Allocation Failure) 2016-12-07T23:42:22.525+0000: [ParNew: 909299K->485K(1022400K), 0.0080858 secs] 2279240K->1370427K(3294336K), 0.0082357 secs] [Times: user=0.12 sys=0.00, real=0.01 secs] 
2016-12-07T23:42:23.474+0000: [GC (Allocation Failure) 2016-12-07T23:42:23.474+0000: [ParNew: 909349K->547K(1022400K), 0.0090641 secs] 2279291K->1370489K(3294336K), 0.0091965 secs] [Times: user=0.12 sys=0.00, real=0.00 secs] 
我读取了几TB的数据(大部分是字符串),因此我担心恒定的GC会减慢处理时间。
我希望您能给我一些建议,告诉我如何理解这条消息,以及如何优化GC,使其消耗最少的CPU时间。

分配失败是启动GC循环的正常和最常见的原因


日志告诉我们GC每秒发生一次,大约需要10毫秒,即1%的时间。依我看,这里没有要优化的内容。

这是由于以下配置而出现的:“spark.executor.memory”:“xg”。要删除此项,请尝试包含spark.executor.memory(如果尚未包含),否则请增加该值,直到其消失。在我的情况下,我把它设置为24克。干杯