首页 > 代码库 > Hadoop学习笔记_6_分布式文件系统HDFS --NameNode体系结构
Hadoop学习笔记_6_分布式文件系统HDFS --NameNode体系结构
分布式文件系统HDFS
--NameNode体系结构
NameNode
是整个文件系统的管理节点。
它维护着整个文件系统的文件目录树[为了使得检索速度更快,该目录树放在内存中],
文件/目录的元信息和每个文件对应的数据块列表。
接收用户的操作请求。
Hadoop确保了NameNode的健壮性,不容易死亡.文件目录树以及文件/目录的元信息等归根到底是存放在硬盘中的,但是在Hadoop运行时,需要将其加载到内存中.
文件包括:
fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。
edits:操作日志文件。
fstime:保存最近一次checkpoint的时间
以上这些文件是保存在linux的文件系统中。
1.查看hdfs-default.xml文件内容
<property> <name>dfs.name.dir</name> <value>${hadoop.tmp.dir}/dfs/name</value> <description>Determines where on the local filesystem the DFS name node should store the name table(fsimage:文件系统镜像)(指定了NameNode在本机中存储name table的位置).其中${hadoop.tmp.dir}会被替换为core-site.xml文件中的一个值,见下, If this is a comma-delimited list of directories then the name table is replicated in all of the directories, for redundancy.为了数据安全,可以将该值写为一个以逗号分隔的目录列表,指定fsimage的多个存储位置,保证安全,如${hadoop.tmp.dir}/dfs/name,newdir0,newdir1 但并不是在此处进行修改,一定是copy到hdfs-site.xml文件中,并且逗号前后不要加空格,其中这些文件夹越分散越好 </description> </property>
2.进入core-site.xml
<property> <name>hadoop.tmp.dir</name> <value>/tmp/hadoop-${user.name}</value> <description>A base for other temporary directories.</description> </property>
3.返回hdfs-default.xml文件
<property> <name>dfs.name.edits.dir</name> <value>${dfs.name.dir}</value> <description>Determines where on the local filesystem the DFS name node should store the transaction (edits) file(事务文件,用于保存上传文件事务过程(事务)的文件),具体执行过程请参照Secondary NameNode. If this is a comma-delimited list of directories then the transaction file is replicated in all of the directories, for redundancy. Default value is same as dfs.name.dir </description> </property>
SecondaryNameNode
执行过程:从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并将其推送到NameNode,同时重置NameNode的edits.
一旦NameNode中的fsimage数据丢失或损坏,则可以调用SecondaryName中的fsimage备份来恢复,但是这些数据文件并不包含还未合并的.功能类似于Windows下的还原点.
SecondaryNameNode默认在安装在NameNode节点上,但这样不安全!
合并原理:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。