使用 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,所以我无法找出导致此问题的原因以及如何解决此错误。除了一个葡萄牙语的帖子,没有一个明确的答案,我找不到任何解决这个问题的帖子。
1条答案
按热度按时间64jmpszr1#
最后,我发现这个错误的原因是试图从运行在内核上的函数调用spark上下文对象,这些函数不是主脚本的一部分,而它已经在主脚本中创建。显然下面的命令
创建一个新的sparkcontext对象,即使它已经在主节点上的主脚本中创建。因此,为了防止此问题,如果必须在非主脚本的脚本中使用sparkcontext,则必须将其从主脚本显式导出/导入到副脚本(例如,作为函数的参数),以避免以下问题。