论文"在数据分析框架中理解绩效"发布在NSDI 2015中的结论是CPU(不是IO或网络)是Spark的性能瓶颈。 Kay已经在Spark上做了一些实验,包括BDbench,TPC-DS和一个procdution工作负载(仅使用Spark SQL?)。我想知道这个结论是否适用于某些基于Spark构建的框架(如Streaming,通过网络接收连续数据流,网络IO和磁盘都会承受很大的压力)。
答案 0 :(得分:2)
这实际上取决于您执行的工作。你需要分析你写的工作,看看压力和瓶颈在哪里。 例如,我最近有一份工作没有足够的内存工作,所以它也不得不溢出到磁盘上,这大大增加了它的整体IO。当我删除内存问题CPU是下一个问题。更严格的代码将问题转移到IO等。
答案 1 :(得分:2)
网络和磁盘在Spark Streaming中受到的压力较小,因为流通常是checkpointed,这意味着所有数据通常都不会永远存在。
但最终,这是一个研究问题:解决这个问题的唯一方法是进行基准测试。凯的代码是open-source。