【问题标题】:Mysterious Spark/Hadoop BlockMissingException神秘的 Spark/Hadoop BlockMissingException
【发布时间】:2019-12-09 04:49:30
【问题描述】:

当程序尝试访问附加的 HDFS 中的文件时,在 Google Dataproc 上运行 Spark 作业时,我看到了很多类似以下的错误(是的,如果这很重要,我从事的是生物信息学):

Caused by: 
org.apache.hadoop.hdfs.BlockMissingException: 
Could not obtain block: 
BP-605637428-10.128.0.34-1564425505397:blk_1073741871_1047 
file=/reference/Homo_sapiens_assembly38.fasta

当我解析日志时,异常是反复抱怨访问4~5个块。该文件约为 3GB,HDFS 上的块大小设置为 ~138MB。

然后我去hadoop fsck /reference/Homo_sapiens_assembly38.fasta,得到了如下

.Status: HEALTHY
 Total size:    3249912778 B
 Total dirs:    0
 Total files:   1
 Total symlinks:        0
 Total blocks (validated):  25 (avg. block size 129996511 B)
 Minimally replicated blocks:   25 (100.0 %)
 Over-replicated blocks:    0 (0.0 %)
 Under-replicated blocks:   0 (0.0 %)
 Mis-replicated blocks:     0 (0.0 %)
 Default replication factor:    2
 Average block replication: 2.0
 Corrupt blocks:        0
 Missing replicas:      0 (0.0 %)
 Number of data-nodes:      8
 Number of racks:       1

按照herehere 所示创建dataproc 集群时,我也尝试将dfs.client.use.datanode.hostname 设置为true,但也没有成功。

我还计划将 dfs.replication 从 Dataproc 默认的 2 增加到 3,但 Google 说 this 所以我还不确定这是否会影响性能。

有人知道发生了什么吗?

【问题讨论】:

  • 在资源管理器上检查您的节点的运行状况,在我看来,您的一些数据节点变得不健康并最终出现故障/无响应,这就是您的工作因阻塞而失败的原因缺少异常。
  • @allbutlinear 谢谢!但是您知道如何为 Dataproc 执行此操作吗(指向某个文档的链接会很完美)?
  • 请找Link,寻找YARN ResourceManager
  • 你能把那个文件放到 GCS 上吗?
  • @KarthikPalaniappan,我实际上尝试过,结果我依赖的代码以非常低效的方式从 GCS 读取。所以我需要了解为什么会这样。不过感谢您的意见!

标签: apache-spark hadoop google-cloud-dataproc


【解决方案1】:

我也遇到了这个问题,问题是输入文件已损坏。我刚刚再次将文件上传到 HDFS,它工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-11
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 2018-11-28
    相关资源
    最近更新 更多