从 s3 读取文件时 Spark 应用程序停止

Posted

技术标签:

【中文标题】从 s3 读取文件时 Spark 应用程序停止【英文标题】:Spark application stops when reading file from s3 【发布时间】:2015-11-27 11:19:08 【问题描述】:

我有一个在 EMR 上运行并从 s3 读取 csv 文件的应用程序。 但是,当我尝试从 s3 读取该文件时,整个事情似乎停止了(我让它运行了大约一个小时)。除了应用程序仍在运行之外,什么也没有发生,也没有任何内容被写入日志。此应用程序运行的步骤不会失败!

我尝试通过 spark-submit 的标志 --files 将文件复制到集群,并使用 sc.textFile(filename) 在应用程序中直接读取它。

我有什么遗漏吗?

【问题讨论】:

您是否对驱动程序进行了线程转储以查看它此时正忙于做什么?这是 yarn 客户端还是集群? 【参考方案1】:

过了一会儿,我终于又回到了那个问题上,并且可以自己“解决”它(虽然我真的不知道问题是什么......) 似乎 spark 未能分配工作节点。将 spark.dynamicAllocation.enabled 设置为 true 后,现在一切正常。

【讨论】:

我怀疑应用程序必须请求无法提供的执行程序容器...可能内存或核心请求过多。

以上是关于从 s3 读取文件时 Spark 应用程序停止的主要内容,如果未能解决你的问题,请参考以下文章

当Spark从S3读取大文件时,可以将数据分发到不同的节点

如何从 Spark 正确读取 S3 中的 .csv 文件? - 无法读取文件的页脚

在 emr 中使用 spark 从 S3 读取 avro 失败

Spark 使用 sc.textFile ("s3n://...) 从 S3 读取文件

Spark - 如何从 S3 读取具有文件名的多个 Json 文件

如何使用 Python Jupyter Notebook 通过 KMS 加密从 S3 读取文件