“在aws emr上搜索时找不到有效的spark\u home”

nx7onnlm  于 2021-05-19  发布在  Spark
关注(0)|答案(1)|浏览(519)

使用 spark submit 命令程序被卡住了10%(可以看穿) yarn application --list )当我检查日志时,所有核心执行器都显示了以下类型的消息作为最近的错误:

Could not find valid SPARK_HOME while searching ['/mnt1/yarn/usercache/hadoop/appcache/application_x_0001', '/mnt/yarn/usercache/hadoop/filecache/11/pyspark.zip/pyspark', '/mnt1/yarn/usercache/hadoop/appcache/application_x_0001/container_x_0001_01_000002/pyspark.zip/pyspark', '/mnt1/yarn/usercache/hadoop/appcache/application_x_0001/container_x_0001_01_000002']

代码在本地运行得很好,而且由于所有内核上都安装了spark,所以我无法找出导致此问题的原因以及如何解决此错误。除了一个葡萄牙语的帖子,没有一个明确的答案,我找不到任何解决这个问题的帖子。

64jmpszr

64jmpszr1#

最后,我发现这个错误的原因是试图从运行在内核上的函数调用spark上下文对象,这些函数不是主脚本的一部分,而它已经在主脚本中创建。显然下面的命令

from pyspark import SparkContext
sc = SparkContext.getOrCreate()

创建一个新的sparkcontext对象,即使它已经在主节点上的主脚本中创建。因此,为了防止此问题,如果必须在非主脚本的脚本中使用sparkcontext,则必须将其从主脚本显式导出/导入到副脚本(例如,作为函数的参数),以避免以下问题。

相关问题