【问题标题】:Pyspark monitoring metrics not making sensePyspark 监控指标没有意义
【发布时间】:2022-12-11 16:41:16
【问题描述】:

我试图在使用 pyspark 时了解 spark ui 和 hdfs ui。 以下是我正在运行的会话的属性

pyspark --master yarn --num-executors 4 --executor-memory 6G --executor-cores 3 --conf spark.dynamicAllocation.enabled=false --conf spark.exector.memoryOverhead=2G --conf spark.memory.offHeap.size=2G --conf spark.pyspark.memory=2G

我运行了一个简单的代码来读取内存中的文件(磁盘上约 9 GB)两次。并且,然后合并这两个文件并保留结果并运行计数操作。

#Reading the same file twice
df_sales = spark.read.option("format","parquet").option("header",True).option("inferSchema",True).load("gs://monsoon-credittech.appspot.com/spark_datasets/sales_parquet")
df_sales_copy = spark.read.option("format","parquet").option("header",True).option("inferSchema",True).load("gs://monsoon-credittech.appspot.com/spark_datasets/sales_parquet")
#caching one
from pyspark import StorageLevel
df_sales = df_sales.persist(StorageLevel.MEMORY_AND_DISK)

#merging the two read files
df_merged = df_sales.join(df_sales_copy,df_sales.order_id==df_sales_copy.order_id,'inner')
df_merged = df_merged.persist(StorageLevel.MEMORY_AND_DISK)
#calling an action to trigger the transformations
df_merged.count()

我预计:

  1. 数据要先持久化在内存中,再持久化到磁盘中
  2. 要使用的 HDFS 容量至少要达到数据持久溢出磁盘上数据的程度

    这两种期望在以下监控中都失败了:

    期望 1:失败。实际上,数据可能首先保存在磁盘上,然后再保存在内存中。没有把握。下图应该有所帮助。除非我遗漏了什么,否则绝对不会先在磁盘中

    期望 2:失败。 HDFS 容量完全没有用完(只有 1.97 GB)

    你能帮我调和我的理解并告诉我我在预期提到的行为中错在哪里以及我在这些图像中看到的实际上是什么吗?

【问题讨论】:

  • 您要解决什么问题需要您保留此信息?
  • 很乐意帮助解释,但首先我必须问你为什么要这样做,因为它会影响答案。
  • @MattAndruff 我只是想了解如何阅读 spark UI 和 hdfs 使用指标并理解它们。学习阶段。我所做的只是读取数据、持久化、读取与另一个对象相同的数据、合并、持久化结果。现在,我尝试根据参数及其对我的理解来查看监控指标。请让我知道如何帮助您更好地帮助我

标签: apache-spark hadoop pyspark google-cloud-dataproc spark-ui


【解决方案1】:

除非你有充分的理由,否则不要使用持久化到磁盘。(你应该只在确定瓶颈时进行性能调整)写入磁盘比继续处理数据花费的时间要长得多。出于这个原因,只应在有理由的情况下使用 persist to disk 。读取数据进行计数并不是这些原因之一。

我谦虚地建议不要更改火花启动参数,除非你有理由。(并且你理解它们。)这里你不会因为你的火花启动配置而将你的数据放入内存中。 (您将空间分成 2 Gig 分配,这意味着您永远不会将 9 Gig 放入您拥有的 6 Gig 中)我认为您应该考虑删除所有配置并查看它如何改变内存中使用的内容。使用这些启动配置将帮助您了解每个参数的作用。这可能会帮助您了解更多信息。

真的很难提供更多建议,因为有很多东西需要学习和解释。也许你会走运,其他人会回答你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    相关资源
    最近更新 更多