# 如果在写数据的时候, 突然取消某个磁盘的读写权限会Client出现以下提示 23:28:41,015 INFO hdfs.DataStreamer: Exception in createBlockOutputStream blk_1073743016_2233 java.io.EOFException: Unexpected EOF while trying to read response from server at org.apache.hadoop.hdfs.protocolPB.PBHelperClient.vintPrefixed(PBHelperClient.java:549) at org.apache.hadoop.hdfs.DataStreamer.createBlockOutputStream(DataStreamer.java:1762) at org.apache.hadoop.hdfs.DataStreamer.nextBlockOutputStream(DataStreamer.java:1679) at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:716) 23:28:41,243 WARN hdfs.DataStreamer: Abandoning BP-1860588468-10.172.195.33-1572260690191:blk_1073743016_2233 23:28:41,265 WARN hdfs.DataStreamer: Excluding datanode DatanodeInfoWithStorage[10.172.195.33:9866,DS-c129f737-341c-4207-822b-c4328bfb585d,DISK]
# 对应DN的日志, 随后DN进程退出 23:28:41,089 WARN DatasetVolumeChecker: Exception running disk checks against volume /data00/block DiskChecker$DiskErrorException: Directory is not readable # 异步检查读权限不满足 23:28:41,090 WARN DataNode: checkDiskErrorAsync callback got 1 failed volumes: [/data00/block] 23:28:41,301 INFO FsDatasetImpl: Removed volume: /data00/block 23:28:41,302 INFO FsDatasetImpl: Volume reference is released. 23:28:41,302 INFO DataNode: Deactivating volumes (clear failure=false): [DISK]file:/data00/block 23:28:41,302 INFO FsDatasetImpl: Checking removing StorageLocation [DISK]file:/data00/block 23:28:41,302 INFO FsDatasetImpl: Removing StorageLocation [DISK]file:/data00/block 23:28:41,322 INFO Storage: Removing block level storage: /data00/block/current/BP-1860588468-10.172.195.33-1572260690191 23:28:41,322 WARN DataNode.handleDiskError on: [DataNode failed volumes:[DISK]file:/data00/block;] Keep Running: false 23:28:41,328 WARN DataNode is shutting down due to failed volumes: [DataNode failed volumes:[DISK]file:/data00/block;]
# 如果是写文件中间, 突然把写权限去掉, 客户端提示EOF 23:46:41,104 WARN hdfs.DataStreamer: Exception for BP-1860588468-10.172.195.33-1572260690191:blk_1073743070_2287 java.io.EOFException: Unexpected EOF while trying to read response from server at org.apache.hadoop.hdfs.protocolPB.PBHelperClient.vintPrefixed(PBHelperClient.java:549) at org.apache.hadoop.hdfs.protocol.datatransfer.PipelineAck.readFields(PipelineAck.java:226) at org.apache.hadoop.hdfs.DataStreamer$ResponseProcessor.run(DataStreamer.java:1086) 23:46:41,108 WARN hdfs.DataStreamer: Error Recovery for blk_1073743070_2287 in pipeline [DatanodeInfoWithStorage[10.172.195.33:,DISK]]: datanode 0(DatanodeInfoWithStorage[10.172.195.33:9866,DDISK]) is bad. 23:46:41,162 INFO hdfs.DataStreamer: Exception in createBlockOutputStream blk_1073743071_2289 java.io.EOFException: Unexpected EOF while trying to read response from server at org.apache.hadoop.hdfs.protocolPB.PBHelperClient.vintPrefixed(PBHelperClient.java:549) at org.apache.hadoop.hdfs.DataStreamer.createBlockOutputStream(DataStreamer.java:1762) at org.apache.hadoop.hdfs.DataStreamer.nextBlockOutputStream(DataStreamer.java:1679) at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:716) 23:46:41,163 WARN hdfs.DataStreamer: Abandoning BP-1860588468-10.172.195.33-1572260690191:blk_1073743071_2289 23:46:41,168 WARN hdfs.DataStreamer: Excluding datanode DatanodeInfoWithStorage[10.172.195.33:9866,DS-c129f737-341c-4207-822b-c4328bfb585d,DISK]
# 此时DN会触发检查机制, 踢掉此盘. 其他流程同case1的剔除过程 23:56:18,052 WARN DatasetVolumeChecker: Exception running disk checks against volume /data00/block org.apache.hadoop.util.DiskChecker$DiskErrorException: Directory is not writable # 提示写权限缺乏
# 这里可以看到已经写完了一个block的大小, 1280MB (我调大方便测试) 17:18:11,465 DEBUG DataNode: Receiving one packet for block BP-1860588468-10.172.195.33-1572260690191:blk_1073743485_2707: PacketHeader with packetLen=4 header data: offsetInBlock: 1342177280 seqno: 20807 lastPacketInBlock: true
# 然后move meta file抛出异常 17:18:11,473 WARN DataNode: IOException in BlockReceiver.run(): java.io.IOException: Failed to move meta file for ReplicaBeingWritten, blk_1073743485_2707, RBW # 提示RBW的meta文件无法move到finalized Caused by: java.io.IOException: Failed to move block file for ReplicaBeingWritten, blk_1073743485_2707, RBWfrom file:/data01/block/xxx/current/rbw/blk_1073743485_2707.meta to /data01/block/current/xx/finalized/blk_1073743485_2707.meta