可重用的 sparkcontext 实例

Posted

技术标签:

【中文标题】可重用的 sparkcontext 实例【英文标题】:reusable sparkcontext instance 【发布时间】:2017-09-19 01:48:20 【问题描述】:

我是大数据的新手,目前我正在开发一个 CLI 项目,该项目使用 apache spark 执行一些文本解析。

输入命令时,会实例化一个新的 sparkcontext,并从 hdfs 实例中读取一些文件。但是,火花需要太多时间来初始化 sparkcontext 甚至是 sparksession 对象。

所以,我的问题是:- 有没有办法在这些命令之间重用 sparkcontext 实例来减少这种开销?我听说过 spark 作业服务器,但是部署本地服务器太难了,因为它的主要指南有点混乱。

谢谢。

P.S.:我正在使用 pyspark

【问题讨论】:

为什么不启动一次,直到工作完成才关闭它? @DatTran 从 OP 看来,他可能会运行一个 Spark 作业直到完成,然后想要启动一个新作业 - 但没有重新启动 Spark 上下文 【参考方案1】:

这可能不是一个好主意,因为除非您明确调用 rdd.unpersist(),否则您的中间 shuffle 文件永远不会被清理。如果 shuffle 文件没有得到清理,在一段时间内,您将开始在集群上遇到磁盘空间问题。

【讨论】:

以上是关于可重用的 sparkcontext 实例的主要内容,如果未能解决你的问题,请参考以下文章

可重用的 HttpClient 实例与静态变量(在多个线程中大量使用)?

iOS 中 AudioUnit Graph 的可重用性

Django:为可重用模型字段创建一个 Mixin

可重用的接口位,在 IB 中设计

如何使代码可重用? [关闭]

如何在 Django 中重用可重用的应用程序