前置文章:
【HDFS】BlockConstructionStage的几种状态:PIPELINE_SETUP_APPEND、PIPELINE_SETUP_CREATE、TRANSFER_RBW等
一、调用点&调用场景
只有一处调用点,在BlockReceiver的构造方法里:
isClient(来自Client的写数据请求,不是数据块复制或者balancer的情况)的分支里。
调用场景:当正在往pipeline里写数据时,如果发生了异常,就需要进行recovery,此时就会处于PIPELINE_SETUP_STREAMING_RECOVERY状态,就要执行recoverRbw,来对RBW副本进行恢复。
//
// Open local disk out
//
if (isDatanode) {
//replication or move
replicaHandler