问答详情
源自:2-2 HDFS写流程和读流程

如果写流程出错了,怎么处理

如果datanode1 在传给datanode2 的过程中出现错误,这个是怎么解决的呢

提问者:燃烧吧蔬菜 2020-05-02 15:55

个回答

  • 业余奶茶品鉴师
    2020-11-19 22:41:01

    1. 关闭管线。

    2. 将已经发送到管道中,但是还没有确认的数据重新写回到缓冲区,保证数据不会丢失。

    3. 所有的namenode重新分配一个版本号

    4. 重新选举一个主datanode

    5. 计算所有datanode中最小的数据块,重新分配

    6. 重建管线,重新写入

    7. 宕掉的datanode恢复后由于版本号不同会被剔除掉。

    8. 写完文件,namenode发现副本数量不够,会在其他数据节点上再创建一个新的副本。