HDFS架构中各组件的作用和联系
(2017-10-24 23:06:47)
标签:
hdfs架构namenodedatanodesecondarynamenode |
分类: HDFS |
1)Client:
(代表客户)通过与Namenode和DataNode交互从而访问HDFS中的文件。Client提供了一个类似
POSIX的文件系统接口供用户调用。
2)Namenode:
整个集群中只有一个namenode。它是整个系统的“总管”,负责管理HDFS的目录树和相关的文件 元数
据信息。这些信息是以“fsimage”(HDFS元数据镜像文件)和"editlog"(HDFS文件改动日志)两个文
件形式存放在本地磁盘,当HDFS重启时重新构造出来的。此外Namenode还负责监控各个Datanode的健
康状态,一旦发现某个Datanode宕掉,则将该Datanode移出HDFS并重新备份其上面的数据。
3)Secondary NameNode:
最重要的任务不是为NameNode元数据进行热备份,而是定期合并fsimage和edits日志,并传输给
NameNode。这里需要注意的是,为了减小NameNode压力,NameNode自己并不会合并fsimage和
edits,并将文件存储到磁盘上,而是交由Secondary NameNode完成。
4)DataNode:
一般而言,每个Slave节点上安装一个DataNode,它负责实际的数据存储,并将数据信息定期汇报给NameNode。DataNode以固定大小的block为基本单位组织文件内容,默认情况下block大小为64MB。当用户上传一个大的文件到HDFS上时,该文件会被切分成若干个block,分别存储到不同的DataNode;同时,为了保证数据可靠,会将同一个block以流水线方式写到若干个(默认是3,该参数可配置)不同的DataNode上。这种文件切割后存储的过程是对用户透明的。