在Spark-on-Yarn中配置Executor和Driver内存

时间:2017-07-12 13:41:30

标签: hadoop apache-spark apache-spark-sql mapr

我对在Spark-1.5.2中配置执行程序和驱动程序内存感到困惑。

我的环境设置如下:

$(function() {
$("#accordion").accordion();
$('#accordion button[name=tab-control]').on('click',function (e) {
   e.preventDefault();
   var control = ($(this).is('.next') ? 1 : -1);
   $('#accordion').accordion('option', 'active', ($('#accordion').accordion('option', 'active') + control));
});

$('#selectSection').on('change', function() {
  if($(this).val() === 's2') {
    $('#ui-id-3').addClass('ui-state-disabled');
  }
  else {
    $('#ui-id-3').removeClass('ui-state-disabled');
  }
});

输入数据信息:

来自Hive的460 GB Parquet格式表 我正在使用spark-sql来查询带有spark-on-yarn的hive上下文,但是它比Hive慢得多,并且我不确定Spark的内存配置是否合适,

这些是我的配置,

3 Node MAPR Cluster - Each Node: Memory 256G, 16 CPU 
Hadoop 2.7.0 
Spark 1.5.2 - Spark-on-Yarn

如何避免Spark java.lang.OutOfMemoryError:Java堆空间异常和 GC开销限制超出异常!! ???

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

乍一看,你的遗嘱执行人已经耗尽了。我建议增加记忆力。

请注意,SPARK_WORKER_MEMORY仅用于独立模式。 SPARK_EXECUTOR_MEMORY用于YARN模式。

如果您没有在群集上运行任何其他内容,则可以尝试以下配置:

spark.executor.memory   16g
spark.executor.cores    1
spark.executor.instances 40
spark.driver.memory  5g (make it bigger if expected 
                         final result dataset is larger)

我不建议设置大型执行程序内存,因为这通常会增加GC时间。我看到的另一件事是,这些实例是内存优化的。如果这适合你的情况,请三思而后行。