是否可以获得已经运行的 spark 应用程序的 sparkcontext?

Posted

技术标签:

【中文标题】是否可以获得已经运行的 spark 应用程序的 sparkcontext?【英文标题】:Is it possible to get sparkcontext of an already running spark application? 【发布时间】:2016-02-02 23:40:24 【问题描述】:

我在 Amazon EMR 上运行 spark,使用 yarn 作为集群管理器。我正在尝试编写一个 python 应用程序来启动并在内存中缓存数据。如何允许其他 python 程序访问缓存的数据,即

我启动一个应用程序 Pcache -> 缓存数据并保持该应用程序运行。 另一个用户可以访问运行不同实例的相同缓存数据。

我的理解是应该可以处理已经运行的 sparkContext 并访问该数据?那可能吗?或者我是否需要在该 Spark 应用程序之上设置一个 API 来访问该数据。或者可以使用 Livy 的 Spark Job Server 之类的东西。

【问题讨论】:

【参考方案1】:

无法在多个进程之间共享 SparkContext。实际上,您的选择是自己构建 API,一台服务器持有 SparkContext,其客户端告诉它如何处理它,或者使用 Spark Job Server,这是相同的通用实现。

【讨论】:

【参考方案2】:

我认为这可以帮助你。 :)

classmethod getOrCreate(conf=None)
Get or instantiate a SparkContext and register it as a singleton object.

Parameters: conf – SparkConf (optional)

http://spark.apache.org/docs/latest/api/python/pyspark.html#pyspark.SparkContext.getOrCreate

【讨论】:

始终欢迎提供指向潜在解决方案的链接,但请add context around the link,以便您的其他用户知道它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。考虑到仅仅是指向外部站点的链接是Why and how are some answers deleted? 的一个可能原因。

以上是关于是否可以获得已经运行的 spark 应用程序的 sparkcontext?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以让 Spark 在单个执行程序上运行整个任务集?

apache spark可以在没有hadoop的情况下运行吗?

对RDD进行Spark重复数据删除以获得更大的RDD

是否可以在程序运行时获得程序的输出?

Spark History Server 配置部署

Spark 数据分析调优