我正在运行一个Spark两节点独立集群上的作业 (v 1.0.1)。
Spark执行经常卡在任务mapPartitions处Exchange.scala:44
.
这发生在我工作的最后阶段,打电话给saveAsTextFile
(正如我对 Spark 的延迟执行所期望的那样)。
诊断问题很困难,因为我从未在具有本地 IO 路径的本地模式下遇到过该问题,并且偶尔集群上的作业会按预期完成并提供正确的输出(与本地模式的输出相同)。
这似乎可能与阅读有关s3(约 170MB 文件)之前,我在控制台中看到以下日志记录:
DEBUG NativeS3FileSystem - getFileStatus returning 'file' for key '[PATH_REMOVED].avro'
INFO FileInputFormat - Total input paths to process : 1
DEBUG FileInputFormat - Total # of splits: 3
...
INFO DAGScheduler - Submitting 3 missing tasks from Stage 32 (MapPartitionsRDD[96] at mapPartitions at Exchange.scala:44)
DEBUG DAGScheduler - New pending tasks: Set(ShuffleMapTask(32, 0), ShuffleMapTask(32, 1), ShuffleMapTask(32, 2))
在任务明显挂起/卡住之前我看到的最后一个日志记录是:
INFO NativeS3FileSystem: INFO NativeS3FileSystem: Opening key '[PATH_REMOVED].avro' for reading at position '67108864'
还有其他人遇到过与从 Spark 中的 s3 读取相关的非确定性问题吗?