读取数据时,如果DFSInputStream在于datanode通信时遇到错误,会尝试从这个块的另一个最近的邻近datanode读取数据。他会记住那个故障datanode,以保证以后不会反复读取该节点上后续的块。DFSInputStream也会通过校验和确认从datanode发来的数据是否完整。如果发现有损坏的块,DFSInputStream会试图从其他的datanode读取器副本,也会将损坏的块通知给namenode。这个设计的重点是,每次客户端可以直接连到datanode,且namenode会告知客户端最佳的datanode。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。