Apache Spark 的本地开发

数据挖掘 阿帕奇火花
2021-09-18 02:04:17

我想知道其他开发人员如何设置他们的本地环境来处理 Spark 项目。您是否使用 Vagrant 之类的工具配置“本地”集群?或者,最常见的方式是通过 SSH 进入云环境,例如 AWS 上的集群?也许有很多任务单节点集群就足够了,并且可以更容易地在本地运行。

2个回答

Spark 旨在针对大型分布式数据集,因此正如您所建议的,最典型的用例将涉及连接到某种云系统,例如 AWS。

事实上,如果您要分析的数据集适合您的本地系统,您通常会发现您可以像使用纯 python 一样简单地分析它。如果您尝试利用一系列本地虚拟机,您将很快耗尽内存,作业将失败或停止。

话虽如此,本地的 spark 实例对于开发目的非常有用。

我发现可行的一种方法是,如果我在 HDFS 中有一个包含许多文件的目录,我将提取一个文件,在本地开发,然后将我的 spark 脚本移植到我的云系统以执行。如果您使用的是 AWS,这对于在开发过程中避免高额费用非常有帮助。

就个人而言,我不会将 vagrant 与本地配置一起使用。我已经在本地安装了一个没有 HDFS 的 Spark 集群,这使我可以轻松地进行实验和开发,而不会被虚拟机所淹没。

HDFS 不是本地集群的必需品,如果您只需要它进行本地测试,它也是一种系统管理噩梦。

Spark 可以很好地与本地文件系统配合使用,当然,在您的云上部署时您也必须移植这些文件系统。

不过,您可以将 vagrant 与 AWS 配置一起使用来创建集群以进行更重的测试。

注意:AWS 使用 S3 而不是 HDFS。AWS 的 HDFS 版本是短暂的,如果您关闭集群,您将失去所有计算。对于持久性,您需要写回 S3。