отключение _spark_metadata в структурированном потоке в spark 2.3.0 - PullRequest
0 голосов
/ 17 сентября 2018

Мое приложение структурированной потоковой передачи пишет в паркет, и я хочу избавиться от создаваемой папки _spark_metadata.Я использовал свойство ниже, и оно выглядит нормально

--conf "spark.hadoop.parquet.enable.summary-metadata=false"

При запуске приложения папка _spark_metadata не создается.Но как только он переходит в состояние RUNNING и начинает обрабатывать сообщения, происходит сбой с приведенной ниже ошибкой, говорящей о том, что папка _spark_metadata не существует.Кажется, структурированный поток опирается на эту папку, без которой мы не можем работать.Просто интересно, имеет ли смысл отключать свойство метаданных в этом контексте.Это ошибка, что поток не ссылается на conf?

Caused by: java.io.FileNotFoundException: File /_spark_metadata does not exist.
        at org.apache.hadoop.fs.Hdfs.listStatus(Hdfs.java:261)
        at org.apache.hadoop.fs.FileContext$Util$1.next(FileContext.java:1765)
        at org.apache.hadoop.fs.FileContext$Util$1.next(FileContext.java:1761)
        at org.apache.hadoop.fs.FSLinkResolver.resolve(FSLinkResolver.java:90)
        at org.apache.hadoop.fs.FileContext$Util.listStatus(FileContext.java:1761)
        at org.apache.hadoop.fs.FileContext$Util.listStatus(FileContext.java:1726)
        at org.apache.hadoop.fs.FileContext$Util.listStatus(FileContext.java:1685)
        at org.apache.spark.sql.execution.streaming.HDFSMetadataLog$FileContextManager.list(HDFSMetadataLog.scala:370)
        at org.apache.spark.sql.execution.streaming.HDFSMetadataLog.getLatest(HDFSMetadataLog.scala:231)
        at org.apache.spark.sql.execution.streaming.FileStreamSink.addBatch(FileStreamSink.scala:99)
        at org.apache.spark.sql.execution.streaming.MicroBatchExecution$$anonfun$org$apache$spark$sql$execution$streaming$MicroBatchExecution$$runBatch$3$$anonfun$apply$16.apply(MicroBatchExecution.scala:477)
        at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:77)
        at org.apache.spark.sql.execution.streaming.MicroBatchExecution$$anonfun$org$apache$spark$sql$execution$streaming$MicroBatchExecution$$runBatch$3.apply(MicroBatchExecution.scala:475)
        at org.apache.spark.sql.execution.streaming.ProgressReporter$class.reportTimeTaken(ProgressReporter.scala:271)

1 Ответ

0 голосов
/ 01 октября 2018

причина этого в том, что папка kafkacheckpoint не была очищена. файлы внутри контрольной точки kafka перекрестно ссылались на файлы метаданных spark и не работали. как только я удалил оба, он начал работать

...