Spark 3.4.0新特性--UI支持存储在RocksDB中

背景

对于Spark来说,目前存储所有的事件信息以及UI所需要的信息都是默认存储在内存中,这在CS中,对于以Spark作为 Server的模式下,会导致OOM,也会导致造成之前作者提交PR:Multi sparkSession should share single SQLAppStatusStore的问题。

分析

正如Better Spark UI scalability and Driver stability for large applications所说:目前的Spark UI和SHS存在如下问题:
在这里插入图片描述

  1. spark 存储的 UI信息都是在内存中(数据结构为InMemoryStore) ,这会占用大量的内存,会导致Drvier OOM,影响spark的稳定性
  2. spark的UI存储的SQL条数有限,导致完后的任务,如果想回去看看现场,是无迹可寻的
  3. Spark History Server必须从json格式的event中解析出所有的spark事件,尤其未被压缩的的时间日志会很大,导致SHS的启动需要等待很长一段时间

引入以RocksDB作为存储以后,能够减少driver所需内存,并且引进新的protobuf serializer能够大大加快spark事件的读写事件
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/monkeyboy_tech/article/details/131491218