使用Spark 3.1.1
如何正确设置此spark.driver.log.dfsDir
我的spark-defaults.conf
spark.eventLog.dir hdfs://namenode:9000/shared/spark-logs
spark.history.fs.logDirectory hdfs://namenode:9000/shared/spark-logs
spark.history.fs.update.interval 30s
spark.history.ui.port 8099
spark.history.fs.cleaner.enabled true
spark.history.fs.cleaner.maxAge 30d
spark.driver.log.persistToDfs.enabled true
spark.driver.log.dfsDir hdfs://namenode:9000/shared/driver-logs当在我的火花驱动程序上使用火花提交时,我得到以下错误。
21/05/19 15:05:34 ERROR DriverLogger: Could not persist driver logs to dfs
java.lang.IllegalArgumentException: Pathname /home/app/odm-spark/hdfs:/namenode:9000/shared/driver-logs from /home/app/odm-spark/hdfs:/namenode:9000/shared/driver-logs is not a valid DFS filename.为什么它要在URL前加上应用程序的位置呢?
发布于 2021-05-24 10:59:06
正确的设置方法是:
spark.driver.log.dfsDir /shared/driver-logs发布于 2021-11-01 10:29:16
在早期的spark.driver.log.dfsDir处理方式“实现”中可能会出现错误(但无法确认),因为正式文件说:
如果spark.driver.log.dfsDir是
true,则同步火花驱动程序日志的spark.driver.log.persistToDfs.enabled基本目录。在此基本目录中,每个应用程序将驱动程序日志记录到特定于应用程序的文件中。
还有本节:
如果应用程序通过启用
spark.driver.log.persistToDfs.enabled在客户端模式下持久化驱动程序日志,则应该使用适当的权限手动创建驱动程序日志所在的目录(spark.driver.log.dfsDir)。
这种“感觉”使人觉得目录是要复制到的任何驱动程序日志的根目录。
源代码中的这一行(负责复制驱动程序日志的DriverLogger )让我毫不怀疑:
val rootDir = conf.get(DRIVER_LOG_DFS_DIR).gethttps://stackoverflow.com/questions/67606058
复制相似问题