apache / apache/parquet-java

ParquetReader not using FileSystem cache effectively?

Aperta
#1,847 7 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Component: Parquet Priority: Major Type: bug
Lingua principale
Java
Stelle
3.1k
Fork
1.6k
Merge medio
3g 12h
PR unite (30g)
33

Descrizione

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.*

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia da parquet.hadoop.ParquetFileReader.readFooter e ParquetRecordReader.initializeInternalReader, quindi traccia le chiamate alla cache di Hadoop FileSystem mostrate nello stack trace. Riproduci il comportamento del job Spark e determina se si verifica un’inizializzazione ripetuta del file system. Il lavoro è completato quando il comportamento della cache è compreso e il blocco segnalato è stato risolto oppure escluso chiaramente con un test di regressione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
hadoop, java, spark
Ambito
data-engineering, distributed-systems
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.