ParquetReader not using FileSystem cache effectively?
- Vorherrschende Sprache
- Java
- Sterne
- 3.1k
- Forks
- 1.6k
- Ø Merge
- 3 T. 12 Std.
- Gemergte PRs (30 T.)
- 33
Beschreibung
We've seen spark job stucked with following trace:
java.util.HashMap.put(HashMap.java:494)
org.apache.hadoop.conf.Configuration.set(Configuration.java:1065)
org.apache.hadoop.conf.Configuration.set(Configuration.java:1035)
org.apache.hadoop.fs.viewfs.HDFSCompatibleViewFileSystem.mergeViewFsHdfsMountPoints(HDFSCompatibleViewFileSystem.java:491)
org.apache.hadoop.fs.viewfs.HDFSCompatibleViewFileSystem.mergeConfFromDirectory(HDFSCompatibleViewFileSystem.java:413)
org.apache.hadoop.fs.viewfs.HDFSCompatibleViewFileSystem.mergeViewFsAndHdfs(HDFSCompatibleViewFileSystem.java:273)
org.apache.hadoop.fs.viewfs.HDFSCompatibleViewFileSystem.initialize(HDFSCompatibleViewFileSystem.java:190)
org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2438)
org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:90)
org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2472)
org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2454)
org.apache.hadoop.fs.FileSystem.get(FileSystem.java:384)
org.apache.hadoop.fs.Path.getFileSystem(Path.java:296)
parquet.hadoop.ParquetFileReader.readFooter(ParquetFileReader.java:384)
parquet.hadoop.ParquetRecordReader.initializeInternalReader(ParquetRecordReader.java:157)
parquet.hadoop.ParquetRecordReader.initialize(ParquetRecordReader.java:140)
org.apache.spark.rdd.NewHadoopRDD$$anon$1.(NewHadoopRDD.scala:133)
org.apache.spark.rdd.NewHadoopRDD.compute(NewHadoopRDD.scala:104)
org.apache.spark.rdd.NewHadoopRDD.compute(NewHadoopRDD.scala:66)
org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:277)
org.apache.spark.rdd.RDD.iterator(RDD.scala:244)
org.apache.spark.rdd.NewHadoopRDD$NewHadoopMapPartitionsWithSplitRDD.compute(NewHadoopRDD.scala:244)
org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:277)
org.apache.spark.rdd.RDD.iterator(RDD.scala:244)
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:35)
org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:277)
org.apache.spark.rdd.RDD.iterator(RDD.scala:244)
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:35)
org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:277)
org.apache.spark.rdd.RDD.iterator(RDD.scala:244)
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:35)
org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:277)
org.apache.spark.rdd.RDD.iterator(RDD.scala:244)
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:35)
org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:277)
org.apache.spark.rdd.RDD.iterator(RDD.scala:244)
org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:68)
org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41)
org.apache.spark.scheduler.Task.run(Task.scala:64)
org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:203)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
java.lang.Thread.run(Thread.java:745)
**Reporter**: [Tim](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=tianshuo) / @tsdeng
**Note**: *This issue was originally created as [PARQUET-328](https://issues.apache.org/jira/browse/PARQUET-328). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne bei parquet.hadoop.ParquetFileReader.readFooter und ParquetRecordReader.initializeInternalReader und verfolge anschließend die im Stacktrace gezeigten Aufrufe des Hadoop FileSystem-Caches. Reproduziere das Verhalten des Spark-Jobs und ermittle, ob eine wiederholte Dateisysteminitialisierung stattfindet. Als abgeschlossen gilt die Aufgabe, wenn das Cache-Verhalten verstanden ist und der gemeldete Stillstand behoben oder mit einem Regressionstest eindeutig ausgeschlossen wurde.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- hadoop, java, spark
- Bereich
- data-engineering, distributed-systems
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100