警告 BlockManagerMasterEndpoint:没有更多副本可用于 rdd

Bob*_*Bob 13 apache-spark pyspark

使用 YARN 在 pyspark 中缓存大型数据帧时,我看到以下类型的消息:-

WARN BlockManagerMasterEndpoint: No more replicas available for rdd_23_62 !    
Run Code Online (Sandbox Code Playgroud)

这个消息究竟是什么意思?

是否会导致后续Container killed on request. Exit code is 143错误?

Den*_*din 6

容器被杀死的消息很常见。它的基本意思是“事情没有按计划进行,所以 Spark 放弃了”。

虽然我找不到任何关于确切错误的重要参考资料,但我的理解如下:

当 Spark 必须处理数据时,它会跨节点复制该数据。(主要在内存中,但根据情况/设置,它可能会选择溢出到磁盘)。

该消息本身似乎非常清楚:它正在尝试处理数据,但没有找到任何可用的副本。

我不知道的是根本原因。

  1. 可能是某种原因导致数据获取失败
  2. 或者,可能已成功创建副本,但现在无法访问

对于后一种情况,我可以想到两个主要原因:

  • 存在有效的副本但访问失败(例如某种网络问题)
  • 虽然它曾经有效,但现在没有有效的副本。也许它被损坏或被踢出(例如被另一个应用程序?)

我知道这留下了一些可能性,但希望这有助于找到根本原因。