文档首页/ 云数据迁移 CDM/ 常见问题/ 故障处理类/ 迁移HDFS文件,报错无法获取块怎么处理?
更新时间:2023-06-21 GMT+08:00

迁移HDFS文件,报错无法获取块怎么处理?

问题描述

  1. 用户HDFS为线下自建的,往OBS迁移文件建立好连接器后,测试源端和目的端的连通性都是没问题的。
  2. 任务启动时报如下错误:
Error: java.io.IOException: org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-787476470-192.168.152.10-1573351961380:blk_1073742171_1347 file=/user/hive/warehouse/db_hive.db/emp/emp.txt (state=,code=0)

原因分析

  1. 使用HDFS客户端get文件可以正常获取,所以不是文件块丢失。
  2. 查看HDFS服务的所有DataNode实例是否都已启动,此时DataNode状态为停止会获取不到块,以及cdm和DataNode节点的网络是否正常。

    注:9866端口是HDFS文件系统DataNode的数据传输接口。

解决方案

因为DataNode节点防火墙为开启状态,CDM在与Datanode建立连接时失败导致获取块失败。关闭Datanode节点的防火墙后问题解决。