gpt4 book ai didi

apache-spark - Spark 事件日志 HDFS 一致性

转载 作者:可可西里 更新时间:2023-11-01 15:45:49 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,即 Spark 事件日志的长度没有正确更新。例如,我们将查看文件 application_1551818805190_0006_1.inprogress

当我使用 hdfs dfs -ls/var/log/spark/apps/ 时,我看到该文件只有 309 个字节:

[hadoop ~]$ hdfs dfs -ls hdfs:///var/log/spark/apps
-rwxrwx--- 2 hadoop spark 138180350 2019-03-05 22:47 hdfs:///var/log/spark/apps/application_1551818805190_0004_1
-rwxrwx--- 2 hadoop spark 138184198 2019-03-05 22:57 hdfs:///var/log/spark/apps/application_1551818805190_0005_1
-rwxrwx--- 2 hadoop spark 309 2019-03-05 23:59 hdfs:///var/log/spark/apps/application_1551818805190_0006_1.inprogress

但是当我从 HDFS (hdfs dfs -get) 获取文件并在本地文件系统上执行 ls 时,文件长度实际上是 85695488 字节!我很困惑,因为 Spark EventLoggingListener使用 .hflush() 应该使数据对所有读者可见的方法。

我在使用 Hadoop 的 Java API 时遇到了同样的问题。除了打开一个 FSDataInputStream 并使用 skip 手动计算文件的实际字节长度外,我还能做些什么吗?

最佳答案

已解决。事实证明,Spark History Server 的编写器 EventLoggingListener 会将数据“刷新”到 HDFS,但客户端只会在分配了新 block 时刷新。

关于apache-spark - Spark 事件日志 HDFS 一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55013619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com