amazon-web-services - 是否可以在启用 spark.eventLog.compress 的情况下查看 spark 历史服务器中的日志?
问题描述
我想spark.eventLog.compress
在 EMR 集群中启用以节省日志空间,而不会丢失 spark 历史服务器的功能。我尝试启用配置设置并提交一个基本步骤,但打开历史服务器只显示“未找到已完成的应用程序!”。也没有发现不完整的申请。运行spark.eventLog.compress
设置为 false 的相同集群会显示我期望的应用程序日志。
日志确实似乎在那里并被压缩
scala> spark.conf.get("spark.history.fs.logDirectory")
res0: String = hdfs:///var/log/spark/apps
scala> :quit
[hadoop@ip-... ~]$ hadoop fs -ls hdfs:///var/log/spark/apps
Found 3 items
-rwxrwx--- 1 hadoop spark 24595 2020-12-07 22:26 hdfs:///var/log/spark/apps/application_1607379760026_0001_1.lz4
-rwxrwx--- 1 hadoop spark 17878 2020-12-07 22:26 hdfs:///var/log/spark/apps/application_1607379760026_0002.lz4
-rwxrwx--- 1 hadoop spark 12190 2020-12-07 22:44 hdfs:///var/log/spark/apps/application_1607379760026_0003.lz4
[hadoop@ip-... ~]$ logout
我还尝试按照此答案org.apache.spark.deploy.history.HistoryServer
检查进程中的日志(通过 找到ps aux | grep -i history
)
[hadoop@ip-... ~]$ sudo tail -f /proc/25275/fd/1
...
20/12/08 20:46:08 INFO FsHistoryProvider: Parsing hdfs://ip-...:8020/var/log/spark/apps/application_1607443436753_0002_1.lz4 to re-build UI...
20/12/08 20:46:08 INFO FsHistoryProvider: Finished parsing hdfs://ip-...:8020/var/log/spark/apps/application_1607443436753_0002_1.lz4
20/12/08 21:01:50 INFO FsHistoryProvider: Parsing hdfs://ip-...:8020/var/log/spark/apps/application_1607443436753_0003_1.lz4.inprogress for listing data...
20/12/08 21:01:50 INFO FsHistoryProvider: Finished parsing hdfs://ip-...:8020/var/log/spark/apps/application_1607443436753_0003_1.lz4.inprogress
20/12/08 21:02:00 INFO FsHistoryProvider: Parsing hdfs://ip-...:8020/var/log/spark/apps/application_1607443436753_0003_1.lz4 for listing data...
20/12/08 21:02:00 INFO FsHistoryProvider: Finished parsing hdfs://ip-...:8020/var/log/spark/apps/application_1607443436753_0003_1.lz4
在我看来,这表明历史服务器应该能够读取它们,但很难说我是否只是错过了一条错误消息或其他东西。启用后是否可以查看历史服务器中的日志spark.eventLog.compress
?
解决方案
spark.eventLog.compress=true - 是的,你可以在 Spark History Server UI 中查看事件日志,但是如果你想直接从文件中读取内容是不可能的,因为它是压缩的。
spark.eventLog.compress (默认 false) - 是启用 (true) 还是禁用 (false) 事件压缩(使用 CompressionCodec)。
spark.eventLog.compression.codec(默认无)- 用于压缩日志事件的编解码器。默认情况下,Spark 提供四种编解码器:LZ4、LZF、Snappy 和 ZSTD。如果未指定此参数,则使用 spark.io.compression.codec。
推荐阅读
- javascript - 302 重定向可以跨同源策略吗?
- wordpress - 仅在几页上加载 WordPress 插件的 CSS 和 JS 脚本?
- python - 如何在 Python 中获取线程执行时间
- python - Tkinter 中的 gridborder 和 -margin 到 big
- javascript - 字符串、破折号和结束字符串的正则表达式验证
- json - 为 logstash 转义字段中的连字符
- javascript - 反应,试图检查一个值是否存在于数组中
- html - 无法应用背景渐变
- c# - 如何在 C# 中的 Datagridview 上打开多选文件
- r - 卡方分布