HDFS的写数据中的ack
数据流程:
真正写出的流DfsoOutputFormat
- packet数据包放到dataqueue队列中
- DataStreame线程将dataqueue数据拿出来
1.发送给第一个datanode
2.发给ackqueue队列 - ResponseProcessor线程专门用来接收ack的回执消息
- 如果收到成功的ack,则表示一个Packet发送成功,ResponseProcessor线程会将
ackQueue队列中对应的Packet删除。 - 如果发生错误,所有未完成的Packet都会从ackQueue队列中移除掉,然后重新创建一个新的Pipeline,排除掉出错的那些DataNode节点,接着DataStreamer线程继续从dataQueue队列中重新发送Packet。
- 如果收到成功的ack,则表示一个Packet发送成功,ResponseProcessor线程会将