磁盘错误,心跳和重新备份
每个datanode周期性发送心跳信息给namenode。网络中断可能会导致一批datanode连不上namenode。namenode检测到一段时间没有上报心跳后,把这个datanode标识为dead,不再分配新的io请求给它。在这个datanode上的所有数据都不能访问了,这就会导致一些block的备份数量会少于指定的值。namenode会经常检查block备份数量,发起重新备份。
Rebalancing
检查某个datanode的硬盘容量低,会自动把数据移到另外的datanode。(这个特性还在开发中)
元数据磁盘错误
FsImage和EditLog是HDFS的核心数据结构。这些文件损坏会导致HDFS失效。namenode可以配置支持多份元数据拷贝。
namenode单点
namenode机器是整个hdfs的唯一单点。如果namenode机器down了,手工干预是不可避免的。现阶段namenode自动重启恢复到另一台机器还不支持。目前简单有效的方式就是用抢IP或者DNS切换NameNode机器。