HDFS中数据管理与容错

1.数据块的放置

      每个数据块3个副本,就像上面的数据库A一样,这是因为数据在传输过程中任何一个节点都有可能出现故障(没有办法,廉价机器就是这样的),为了保证数据不能丢失,所以存在3个副本,这样保证了硬件上的容错,保证数据传递过程中准确性。

      3个副本数据,放在两个机架上。比如上面机架1存在2个副本,机架2存在1个副本。

 

(1)如果就像下面的DataNode1数据块无法使用了,可以在机架1上的DataNode2和DataNode3取数据   或者 在机架2上取数据;

(2)如果就像下面这样,机架1不能使用了,我们可以在机架2上取数据;

2.心跳检测

DataNode每隔一段时间就会发送心跳消息给NameNode,NameNode通过解析这些心跳消息判断DataNode的状态,比如判断哪些DataNode是挂掉的,哪些是可以使用的。

3. 二级NameNode

NameNode节点只有一个,但是如果NameNode出现故障,整个集群就会出现问题,所以这里出现一个NameNode的备份,也就是SecondaryNameNode。元数据会定期同步到这个SecondaryNameNode上面。

注意在NameNode正常状态下,这里的SecondaryNameNode只会接收备份,不会接收请求。

如果NameNode出现了故障,如下:

SecondaryNameNode会替换NameNode,成为主的NameNode。

最新文章

  1. jquery-追加元素
  2. php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
  3. QueryRunner类
  4. 倒水问题 (codevs 1226) 题解
  5. Redhat/Centos6.x-Samba配置
  6. NDK(19)简单示例:ndk调用java基本方法、数组;使用stl、访问设备
  7. Bash中的数组
  8. js标题文字向上滚动
  9. Asp.net web服务处理程序(第六篇)
  10. iOS学习,需要懂的一些基础
  11. CentOS下mysql最大连接数设置 1040 too many connection
  12. Storm官方文档翻译之设置开发环境
  13. wamp配置虚拟机步骤
  14. multiprocessing.Process() ----------python中的多进程
  15. Winform DevExpress控件库(一) DevExpress控件库的安装与新建第一个DevExpress项目
  16. python之找最后一个人
  17. centos7 keepalived 配置高可用
  18. centos7.0 yum 安装php服务器
  19. 将项目部署到 github上(部署到码云操作一样,前提是有码云账号)
  20. OpenCV Machine Learning 之 K近期邻分类器的应用 K-Nearest Neighbors

热门文章

  1. DropDownList 控件
  2. 【USACO 1.2.4】回文平方数
  3. 各种driver的继承关系
  4. 用zepto找到当前被选中的option
  5. git stash 保存修改现场
  6. 在sublimetext上打造一个兼容virtualenv的web&python开发环境
  7. [Struts2学习笔记] -- 输入校验
  8. uva 580 危险的组合(排列组合)
  9. C# Attribute
  10. codevs 1017 乘积最大