[
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: [email protected]
For additional commands, e-mail: [email protected]