如何通过 pyspark/hadoop/etc 提高程序的速度?
Posted
技术标签:
【中文标题】如何通过 pyspark/hadoop/etc 提高程序的速度?【英文标题】:How to increase the speed of a procedure via pyspark/hadoop/etc? 【发布时间】:2017-05-01 23:18:49 【问题描述】:我有一个大型矩阵的大型目录,我正在对这些矩阵应用一些昂贵的操作。管道如下所示:
Directory -> extract matrices -> apply operations -> save in a .csv file
请注意,我将之前的“管道”包装到了一个函数中。到目前为止,使用 python 的多处理库,我能够在 1 周内应用之前的管道。但是,我很好奇是否有可能以 spark map-reduce 的方式“并行化”前一个函数。因此,我的任务可以用 pysparks map reduce 增强吗?如何提高速度? (我只有两台笔记本电脑),你们建议我在不修改功能的情况下提高管道速度的其他方法?
【问题讨论】:
在跳转到 Spark 之前尝试 Dask 【参考方案1】:我认为最简单的方法是在更大的计算机上运行。 Spark 和 Map-Reduce 并不是真正为笔记本电脑设计的,它们是为服务器设计的。您可以租用服务器(AWS、Google Compute Engine)并在具有更多内存(我建议至少 32GB,理想情况下为 64GB 或更高)和更多 CPU 内核(4 个或更多)的大型服务器上运行您的管道。在实际租用服务器之前,您始终可以在免费层级(AWS 和 Google 都有免费层级)上模拟您的测试。在那之后,你向它扔更多的服务器。
https://aws.amazon.com/ec2/pricing/on-demand/ 和 https://cloud.google.com/compute/pricing 有定价细节,但你会惊讶于你能以低于 2 美元/小时的价格买到什么。
【讨论】:
以上是关于如何通过 pyspark/hadoop/etc 提高程序的速度?的主要内容,如果未能解决你的问题,请参考以下文章