一、HDFS的某台DataNode宕机了 ,数据是否能再次读到,怎么实现的?
- 能
- HDFS上所有的数据块都有副本,副本存储在不同的机器上,如果某个数据块的某个副本丢失了,其他机器还有别的副本。
- NameNode会校验丢失的数据并恢复
二、Hbase的某台Regionserver宕机了 ,数据是否能再次读到,怎么实现的?
- 能
- 如果某台Regionserver宕机了,Master会监控到宕机,就会根据元数据将这个Regionserver上所有的region分区恢复到别的Regionserver上
- memStore:通过WAL实现内存中的数据恢复,WAL在HDFS上。
- Storefile:HDFS,如果storefile丢失,依旧可以通过hdfs副本来恢复
三、那么Kafka的解决方案:参考了HDFS的方案
- replication:每个分区在创建topic的时候,可以指定有几个分区,以及每个分区有几个副本
- 将每个分区构建多个副本
- 总副本的个数不允许超过机器个数
- 相同分区的副本不允许在同一台机器,如果机器宕机,没有任何意义