开发者社区> 问答> 正文

spark中为什么要尽量避免使用shuffle类算子?

spark中为什么要尽量避免使用shuffle类算子?

展开
收起
游客ahv54x37wvm7u 2021-12-07 20:30:07 426 0
1 条回答
写回答
取消 提交回答
  • 如果有可能的话,要尽量避免使用shuffle类算子,最消耗性能的地方就是shuffle过程。 shuffle过程中,各个节点上的相同key都会先写入本地磁盘文件中,然后其他节点需要通过网络传输拉取各个节点上的磁盘文件中的相同key。而且相同key都拉取到同一个节点进行聚合操作时,还有可能会因为一个节点上处理的key过多,导致内存不够存放,进而溢写到磁盘文件中。因此在shuffle过程中,可能会发生大量的磁盘文件读写的IO操作,以及数据的网络传输操作。磁盘IO和网络数据传输也是shuffle性能较差的主要原因。

    2021-12-07 20:37:45
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载