[关闭]
@tsing1226 2015-12-31T19:48:37.000000Z 字数 1755 阅读 863

hadoop

HDFS相关概念

名词解释:

HDFS(Hadoop Distributed File System):分布式文件系统;

fsimage:镜像文件;

edits:编辑日志文件

NameNode启动过程描述

  • NameNode初次启动

    • HDFS格式化产生初始元数据,在格式化过程中,NameNode创建fsimage文件,并将fsimage信息存储在本地文件系统中。
    • 当NameNode启动时读取本地fsimage文件,创建编辑日志edits且不会进入安全模式,NameNode等待DataNode注册与发送Block Report信息。

    • 根据DataNode发送的块信息,NameNode检测块的个数是不是一致。

  • NameNode再次启动

    • NameNode启动后,文件系统出于安全模式,NameNode将fsimage(镜像文件)载入内存,并执行(replay)编辑日志(edits)的各项操作,并等待DataNode注册与发送Block Report信息,启动DataNode后文件系统将有30s的安全模式。

    • 安全模式下,客户端访问NameNode时只能读取文件系统,不可以对文件系统进行写、删除等操作。

    • 安全模式结束后,客户端对NameNode读写操作时,将在编辑日志中记录,并等待fsmage与edits加入到内存,生成新的fsimage文件和edits文件。

    • 由于HDFS存储数据量比较大,编辑日志文件edits也将很大,SecondaryNameNode将fsimage、edits加载到内存中,并定时将两者合并成一个新的fsimage文件,并创建一个空的编辑日志文件edits;

HDFS元数据存储

HDFS有NameNode、DataNode两个组件,NameNode是HDFS的主控节点,有fsimage和edits。DataNode需要配置data本地存储目录。

  • core-site.xml
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/modules/hadoop-2.5.0/data/tmp</value>
    </property>
</configuration>
  • hdfs-site.xml
<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
         <value>file://${hadoop.tmp.dir}/dfs/name</value>
	    </property>
	    <property>
		    <name>dfs.namenode.edits.dir</name>
		    <value>${dfs.namenode.name.dir}</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file://${hadoop.tmp.dir}/dfs/data</value>
    </property>
</configuration>

存储机制和安全性

存储机制

HDFS是分布式存储、主从架构,采用副本机制,即一个NameNode节点和多个DataNode节点。

数据以块存储,采用副本机制,默认是3;

安全性

  • 数据以块存储,采用副本机制,默认是3;

  • 在创建块时创建块的元数据,存储块的信息;

  • NameNode全权管理块的复制,它周期性的从集群中的每个数据节点接收心跳信号和块状态报告,接收到心跳说明DataNode数据节点正常,如果超过10分钟不能收到某个DataNode的心跳,则该块不可用,则NameNode复制该DataNode的块数据到其他的DataNode上。

  • DataNode会在数据创建的三周验证其checksum,当NameNode发现对块有损坏时,将复制块到预期备份。

参考文献

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注