You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Gautam Pulla (Jira)" <ji...@apache.org> on 2019/11/05 23:32:00 UTC
[jira] [Commented] (SPARK-26570) Out of memory when
InMemoryFileIndex bulkListLeafFiles
[ https://issues.apache.org/jira/browse/SPARK-26570?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16967947#comment-16967947 ]
Gautam Pulla commented on SPARK-26570:
--------------------------------------
I'm hitting a similar issue - but at a more specific line of code - perhaps the following information will help.
When enumerating a large number of files (2-3 million files) in S3, we see an OOM at the line of code below which is concatenating all file-paths into a single string to log them. With 2-3 million paths (each 150 chars), the string would be 400 million characters - and represented as a JVM multi-byte-per-char unicode string, that can be close to 1 Gig of memory just to log the string. With fewer files - say 400k files - the concatenation/logging is successful - but it's still an annoyance as the output log contains a huge string with all the enumerated paths.
{code:java}
class InMemoryFileIndex(
...
private[sql] def bulkListLeafFiles(
paths: Seq[Path],
hadoopConf: Configuration,
filter: PathFilter,
sparkSession: SparkSession): Seq[(Path, Seq[FileStatus])] = {
// Short-circuits parallel listing when serial listing is likely to be faster.
if (paths.size <= sparkSession.sessionState.conf.parallelPartitionDiscoveryThreshold) {
return paths.map { path =>
(path, listLeafFiles(path, hadoopConf, filter, Some(sparkSession)))
}
}
logInfo(s"Listing leaf files and directories in parallel under: ${paths.mkString(", ")}") <<<<<<<<<<< Log line printing all files
{code}
> Out of memory when InMemoryFileIndex bulkListLeafFiles
> ------------------------------------------------------
>
> Key: SPARK-26570
> URL: https://issues.apache.org/jira/browse/SPARK-26570
> Project: Spark
> Issue Type: Bug
> Components: SQL
> Affects Versions: 2.3.2
> Reporter: deshanxiao
> Priority: Major
> Attachments: image-2019-10-13-18-41-22-090.png, image-2019-10-13-18-45-33-770.png, image-2019-10-14-10-00-27-361.png, image-2019-10-14-10-32-17-949.png, image-2019-10-14-10-47-47-684.png, image-2019-10-14-10-50-47-567.png, image-2019-10-14-10-51-28-374.png, screenshot-1.png
>
>
> The *bulkListLeafFiles* will collect all filestatus in memory for every query which may cause the oom of driver. I use the spark 2.3.2 meeting with the problem. Maybe the latest one also exists the problem.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org