zoukankan      html  css  js  c++  java
  • hdfs的写流程以及namenode,datanode挂掉后处理

    HDFS写流程

    client -> namenode: 请求上传第一个block -> 收到可上传的节点(距离感知, 机架感知)

    -> 节点之间建立通信管道 -> 以Packet为单位传输数据(Packet中的单位chunk, 默认512B, 并校验)

    -> 传输完成后再次向namenode请求, 上传下一个block

    通信管道建立后, 确认队列(ack queue)等待传输结果, 队列确认完成后返回给客户端.

    传输完成前namenode关闭

    一个Block在datanode传输成功后, 如果client没来得及返回响应, namenode挂掉, 就会出现数据丢失(配置namenode高可用)

    如果传输过程中datanode出现故障

    关闭pipeline(通信管道)->根据ack queue将已经发送的pocket添加回data queue(撤回已经发送到故障节点的pocket) -> namenode记录故障节点中的未完成的block信息, 待节点恢复后, 删除这部分数据 -> 在剩余的节点上建立新的通信管道 -> 继续传输pocket

    -> datanode挂掉后缺失的副本会namenode管理下恢复

  • 相关阅读:
    javascript 操作DOM元素样式
    javascript 对象
    javascript 事件对象
    javascript 常用尺寸属性
    团队编程项目作业3-模块开发过程
    buuctf-misc 基础加密
    buuctf-misc 你竟然赶我走
    buuctf-misc 大白
    buuctf-misc N种方法解决
    buuctf-misc二维码
  • 原文地址:https://www.cnblogs.com/bitbitbyte/p/13291876.html
Copyright © 2011-2022 走看看