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
Performance 我在哪里可以找到Spark的运营成本?_Performance_Apache Spark_Rdd_Processing Efficiency_Memory Efficient - Fatal编程技术网

Performance 我在哪里可以找到Spark的运营成本?

Performance 我在哪里可以找到Spark的运营成本?,performance,apache-spark,rdd,processing-efficiency,memory-efficient,Performance,Apache Spark,Rdd,Processing Efficiency,Memory Efficient,假设我有两个大小为M1和M2的RDD,平均分布在p个分区中 我很想知道(理论上/大约)过滤器、映射、leftOuterJoin、++、reduceByKey等操作的成本是多少 感谢您的帮助。要衡量执行成本,了解spark执行是如何执行的非常重要 简而言之,当您在RDD上执行一组转换时,spark将创建一个执行计划(也称为DAG),并以触发操作后执行的形式将它们组合在一起 像map/filter/flatMap这样的操作被分组在一起形成一个阶段,因为它们不会引起混乱,而像join、reduceBy

假设我有两个大小为M1和M2的RDD,平均分布在p个分区中

我很想知道(理论上/大约)过滤器、映射、leftOuterJoin、++、reduceByKey等操作的成本是多少


感谢您的帮助。

要衡量执行成本,了解spark执行是如何执行的非常重要

简而言之,当您在RDD上执行一组转换时,spark将创建一个执行计划(也称为DAG),并以触发操作后执行的形式将它们组合在一起

像map/filter/flatMap这样的操作被分组在一起形成一个阶段,因为它们不会引起混乱,而像join、reduceByKey这样的操作将创建更多的阶段,因为它们涉及要在执行器之间移动的数据。Spark将执行
操作
作为一系列
阶段
(如果它们彼此独立,则按顺序或并行执行)。而且,每个
阶段
都作为大量并行
任务执行,其中一次运行的任务数量取决于RDD分区和可用资源

衡量运营成本的最佳方法是查看SparkUI。打开spark UI(默认情况下,如果在本地模式下运行,它将位于localhost:4040)。您将在页面顶部找到几个选项卡,一旦单击其中任何一个,您将被引导到页面,该页面将显示相应的指标

以下是我衡量绩效的方法:

  • 作业的成本
    =>执行其所有
    阶段的成本之和
  • 阶段的成本
    =>在阶段上执行每个并行
    任务
    的平均成本
  • 任务的成本
    =>默认情况下,一个任务消耗一个CPU核心。所消耗的内存在UI中给出,这取决于分区的大小

阶段
中为每个转换导出度量是非常困难的,因为Spark将这些转换组合在一起,并在RDD的一个分区上执行它们

spark的计算是惰性的,因此它实际上取决于整个RDD操作链,因为有些东西可能会在
数据集
上进行优化,您可以使用
解释
来提供查询计划。