hadoop 客户端(DfsClient)需要处理管道异常的情况.

hadoop客户端实例在运行较长时间后, 如中间在put文件的过程中, 出现网络异常, 比如节点和节点之间传输时的网络异常, 那么客户端(DFSClient)抛出异常, 如当中的processDatanodeError(
boolean hasError, boolean isAppend)方法中的All datanode XXX are bad. Aborting异常, 当程序执行至此, closed被置为true, 那么即使上层使用out.close(); 方法尝试关闭流, 但DFSClient 由于closed被置为true, 而无法关闭文件. (假如该客户端实例永久运行下去, 那么该文件永远不会关闭.

issue on jira: https://issues.apache.org/jira/browse/HDFS-951

你可能感兴趣的:(apache,hadoop)