【问题标题】:How to show memory usage of DataFrames using sparklyr?如何使用 sparklyr 显示 DataFrame 的内存使用情况?
【发布时间】:2018-04-07 07:01:45
【问题描述】:

类似于code snippet 列出本地R 环境中对象的内存使用情况,是否有类似的命令可以查看Spark 连接中可用的DataFrames 内存?例如。类似于 src_tbls(sc) 的东西,目前只列出所有 DataFrame,但不列出内存使用情况。

【问题讨论】:

    标签: r apache-spark sparklyr


    【解决方案1】:

    首先你必须记住,Spark 中使用的数据结构默认是惰性的。除非有缓存,否则没有数据相关的存储开销。缓存本身是短暂的 - 取决于StorageLevel,数据可能会因故障或节点停用而被驱逐、丢失。

    您还必须记住 SQL 使用压缩的列式存储,因此内存使用可能会受到数据分布的影响。

    如果您对操作系统所看到的总内存使用量感兴趣,您应该使用适当的监控解决方案,例如 Ganglia 或 Munin。

    也就是说,可以使用SparkContext 访问有关当前状态的信息:

    sc <- spark_connect(...)
    
    sc %>% 
      spark_context %>% 
      invoke("getRDDStorageInfo")
    

    或通过查询 Spark UI:

    url <- sc %>% spark_context %>% invoke("uiWebUrl") %>% invoke("get")
    
    browseURL(paste(url, "storage", sep="/"))
    

    或 REST API:

    app_id <-  sc %>% spark_context %>% invoke("applicationId")
    httr::GET(paste(
      url, "api", "v1", "applications", app_id, "storage", "rdd",  sep="/"
    ))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      • 2016-04-26
      • 2010-12-17
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多