`
spark_li
  • 浏览: 19869 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Hadoop学习笔记——NameNode 和 DataNode 以及容错处理

阅读更多

概念:
HDFS会把一个很大的文件分块(与传统的文件系统类似),存放在不同的DataNode上。不过这个块是个逻辑概念,比较大,默认是64M。
Hadoop以“管理者-工作者”模式运行。NameNode就是管理者,它保存了文件系统中所有文件以及目录信息。也记录了每个文件的分块信息。但这些分块具体在哪些机器上存储则由DataNode自己上报。

容错:
NameNode的容错:
所有的文件访问都要通过NameNode来进行,所以NameNode至关重要。一旦NameNode发生毁坏,则整个系统都不可用。HDFS提供了两种容错机制来保证NameNode的可用性:
1 第一种方法是把文件元数据写入NFS,备份在另一台机器上。备份操作是同步的,原子的。
2 第二种方法是运行辅助的NameNode,不过这个NameNode并不提供服务,它只是把操作日志Merge到Metadata中,但是如果主NameNode失效,总是有一部分数据来不及Merge,会造成数据丢失。所以一般的做法还是把NFS中备份的数据拷贝到这个NameNode,并作为主NameNode运行。

DataNode容错:
DataNode以数据块作为容错单位,通常一个数据块会被复制到三个DataNode上去。一旦某个数据块访问失效,则去其他备份的机器上去读取。并且会把这个数据块再进行一次复制,以达到备份标准。
也就是说,DataNode不是在机器级别上进行备份,而是在数据块级别上进行备份,这样就大大节省了机器数量。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics