首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

与3.0.2相比,spark 3.1.2中的哪些重大变化会导致在可用内存足够的情况下占用磁盘空间

在Spark 3.1.2中,与3.0.2相比,有以下重大变化可能导致在可用内存足够的情况下占用磁盘空间:

  1. Arrow数据传输格式的引入:Spark 3.1.2引入了Arrow数据传输格式,它可以提高数据传输的效率和性能。然而,由于Arrow数据格式在内存中的表示形式与磁盘上的表示形式不同,因此在Spark 3.1.2中使用Arrow数据传输格式可能会导致更多的磁盘空间占用。
  2. 默认的shuffle管理器更改为SortShuffleManager:在Spark 3.1.2中,默认的shuffle管理器从HashShuffleManager更改为SortShuffleManager。SortShuffleManager在处理大规模数据时可以提供更好的性能,但它可能会导致更多的磁盘空间占用。
  3. 动态分区写入优化:Spark 3.1.2引入了动态分区写入优化,它可以在写入数据时自动推断分区的数量和分区列。这种优化可以提高写入性能,但可能会导致更多的磁盘空间占用。
  4. 新的数据源V2 API:Spark 3.1.2引入了新的数据源V2 API,它提供了更灵活和可扩展的数据源接口。然而,由于这是一个全新的API,使用它可能需要更多的磁盘空间来存储相关的元数据和配置信息。

需要注意的是,以上变化可能会导致在可用内存足够的情况下占用更多的磁盘空间,但具体的影响取决于数据量、数据处理操作和集群配置等因素。为了减少磁盘空间的占用,可以考虑调整Spark的配置参数,如调整shuffle分区数量、调整内存分配比例等。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云Spark计算引擎:https://cloud.tencent.com/product/spark
  • 腾讯云数据仓库TDSQL:https://cloud.tencent.com/product/tdsql
  • 腾讯云对象存储COS:https://cloud.tencent.com/product/cos
  • 腾讯云弹性MapReduce:https://cloud.tencent.com/product/emr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 值得一读的linux内存学习总结

    a). 进程使用的物理内存: find /proc/ -maxdepth 1 -iname "[0-9]*" | xargs -I{} cat {}/smaps | grep Pss: | awk '{s+=$2}END{print s}' b). slab分配占用的内存,采用slab机制主要是解决申请时候浪费page的问题,这一部分的内存并不是application 所占用的,所以要单独列出来, 可以在meminfo 中查看到其占用空间以及可回收空间大小. c). pagetable在虚拟地址到物理地址的转换中发挥着关键的作用,所以也不属于application占用的内存,属于系统所用,所以也单独列出来. 其大小随着内存的变大而变大,可以在meminfo 中找到占用的大小. d). free的内存,这一部分内存是从system的角度看,依然是free的,也就是说这一部分内存还没有被system 进行接管. e). cache/buffer内存的大小,这一部分可以在meminfo 中找到,这里主要是 application 的所使用的cache/buffer. f). 其他原因导致的内存gap, 在下面的示例中,上述所述的6种内存的总和大于实际的总内存,这是因为 shmem 是被application使用的,所以在计算进程使用的物理内存的时候,已经包含了shmem,而cache又计算了一次,因此最后的结果应该是减去SHMEM, 这样 和总内存相比,还有5497KB的gap .那么这个gap 到底应该是available的,还是算作used的,不得而知,那么因为这个gap 不大,所以对于内存的使用状况统计,我们可以暂且忽略该gap, 所以我们可以有如下的公式作为一个参考: total = free + cache + buffer + process_used_via_pss + slab + pagetables - shmem

    03
    领券