scala – 如果数据适合单个机器,那么使用Spark是否有意义?
我有20GB的数据需要处理,所有这些数据都适合我的本地机器.我打算使用Spark或
Scala并行收集来对这些数据实现一些算法和矩阵乘法.
由于数据适合单个机器,我应该使用Scala并行集合吗? 这是真的:并行任务的主要瓶颈是将数据传送到CPU进行处理,因为所有数据都尽可能接近CPU,因此Spark不会带来任何显着的性能提升吗? 即使它只是在一台机器上运行,Spark也会设置并行任务的开销,所以这种开销在这种情况下是多余的? 解决方法
很难提供一些非显而易见的指令,比如你有你的数据并且没有达到80%的内存和……,然后使用本地模式.说到这一点,有一些要点,即使你的数据适合一个人的机器内存,一般来说,这可能会让你使用spark:
>真正密集的CPU处理,从我的头脑,它可能是复杂的文本解析 在你的特殊情况下
当然不是,Spark不是巫术魔术,不知何故可以让你的数据更接近CPU,但它可以帮助你在机器之间扩展,从而缩小CPU(点#1)
我可能听起来很明显,但是 >考虑#2和#3,你需要它们吗?如果是的话,去火花或其他东西 在我为什么要使用Spark的列表中还有[厚颜无耻]第4点).这是炒作 – Spark是一种非常性感的技术,很容易“销售”给你的开发者(它是大数据的最前沿)和公司(你的老板,如果你正在建立自己的产品,你的客户如果你正在为别人建造产品). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |