摘要:
首先DataNode自身就是一个Runnable的实现,也就是说DataNode是以一个单独的线程在运行着的。DataXceiverServer,DataXceiverDataNode在Block的数据流读写方面都交给了DataXceiverServer,DataXceiverServer也是运行在一个单独的线程当中,在主循环当中阻塞监听dfs.datanode.address配置的端口号,当有连接过来时,新建一个DataXceiver实例,并且在单独的线程当中运行DataXceiver。DataXceiver根据前面建立的Socket,建立DataInputStream,读取请求的操作,请. 阅读全文