Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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应用程序参数的最佳起点是什么?_Apache Spark_Pyspark - Fatal编程技术网

Apache spark 配置spark应用程序参数的最佳起点是什么?

Apache spark 配置spark应用程序参数的最佳起点是什么?,apache-spark,pyspark,Apache Spark,Pyspark,我很困惑应该使用哪种方法来配置spark应用程序参数 考虑下面的集群配置:10个节点、每个节点16个内核和每个节点的6GB RAM(例如从 基于上述建议,让我们为每个执行器分配5个核心=>--executor cores=5(以获得良好的HDFS吞吐量) 对于Hadoop/Thread守护进程,每个节点保留1个内核=>Num core available per node=16-1=15。因此,集群中的可用内核总数=15 x 10=150 可用执行器的数量=(总内核数/每个执行器的内核数)=15

我很困惑应该使用哪种方法来配置spark应用程序参数

考虑下面的集群配置:10个节点、每个节点16个内核和每个节点的6GB RAM(例如从

  • 基于上述建议,让我们为每个执行器分配
    5个核心=>--executor cores=5
    (以获得良好的HDFS吞吐量)
  • 对于Hadoop/Thread守护进程,每个节点保留
    1个内核=>Num core available per node=16-1=15。因此,集群中的可用内核总数=15 x 10=150
  • 可用执行器的数量=(总内核数/每个执行器的内核数)=150/5=30
  • 为ApplicationManager保留1个执行器=>
    --num executors=29
  • 每个节点的执行器数量=30/10=3
  • 每个执行器的内存=64GB/3=21GB
  • 计算堆开销=21GB=3GB的7%。因此,实际
    --执行器内存=21-3=18GB
  • 因此,建议的配置为:29个执行器,每个18GB内存和5个内核

    考虑另一个示例,其中集群配置为:6个节点、25个核心节点和每个节点125 GB内存(示例来自)

    建议的配置是;--num executors 30--executor cores 4--executor memory 24G。


    问题:如果我们使用示例1中应用的规则并计算示例2中的推荐配置,结果将非常不同。事实上,如果我们
    --executor cores=4
    ,然后我们从每个节点6*24=144减去1个core,那么我们得到144/4=26个执行器。在为AM==>
    --num executors=25 .现在,如果我们要计算每个节点的执行器数量=25/6=WHATTTT?我的错误在哪里?

    有6个节点、25个核心节点和125 GB, 如果细分为每个执行器“4”个核心,每个节点留下“1”个核心。那么6*24=144(考虑的总核心数)。144/4=“36”执行器不是“26”。如果您遗漏了“1”执行器,那么它将是“35”。
    因此,对于每个节点(Node1到Node5=“6”executor+Node6=“5”executor+1(我们省略了它),或者任何其他节点都会携带5个executor和6个executor),就像这样。

    但是他们推荐3o个executor,这让人感到困惑,你可以参考你指向cloudera post的文章。如果每个节点有25个内核离开“1”系统进程的每个节点的核心数和每个节点的每个执行器的“4”核心数可以更好地利用群集资源。@Karthick,您能否指定我们如何通过slurm批处理文件设置您的建议配置:
    #SBATCH--nodes=6#SBATCH--mem per cpu=#SBATCH--cpu per task=#SBATCH--ntasks per node=#