2015-05-15 114 views
1

在NSDI 2015中发布的一篇论文“使数据分析框架中的性能表现”得出结论:CPU(而不是IO或网络)是Spark的性能瓶颈。凯在Spark上做了一些实验,包括BDbench,TPC-DS和一个procdution工作负载(只有Spark SQL被使用?)。我想知道这个结论是否适用于构建在Spark上的某些框架(如Streaming,通过网络接收连续数据流,网络IO和磁盘都将承受高压)。Spark的性能瓶颈

回答

2

网络和磁盘可能在Spark Streaming中承受的压力较小,因为这些流通常是checkpointed,这意味着所有数据通常不会永远保持。但最终,这是一个研究问题:解决这个问题的唯一方法就是基准测试。凯的代码是open-source

+0

感谢您的关注。但凯的实验大部分基于Spark SQL,与其他框架在某些方面不同(尽管它们共享相同的Spark核心)。我只是想知道这篇论文怎么能给出关于Spark(而不是Spark SQL)的结论。我会研究这个问题,再次感谢! –

2

这确实取决于您执行的工作。你需要分析你写的工作,看看压力和瓶颈在哪里。例如,我最近有一份工作没有足够的工人内存,所以它也不得不泄漏到磁盘上,从而增加了整个IO的很多。当我删除内存问题时,CPU是下一个问题。更严格的代码将问题转移到IO等。

+0

感谢您的回答。你其实是对的,它取决于实际的工作量。但我只是想知道这个结论是否正确,因为这篇论文确实以一种通用的模式给出了它。 –