HDFS的体系结构及各自作用

HDFS 采用Master/Slave的架构来存储数据,这种架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode。下面我们分别介绍这四个组成部分。

        Client:就是客户端。

        1、文件切分。文件上传 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储。

        2、与 NameNode 交互,获取文件的位置信息。

        3、与 DataNode 交互,读取或者写入数据。

        4、Client 提供一些命令来管理 HDFS,比如启动或者关闭HDFS。

        5、Client 可以通过一些命令来访问 HDFS。

        NameNode:就是 master,它是一个主管、管理者。

        1、管理 HDFS 的名称空间。

        2、管理数据块(Block)映射信息

        3、配置副本策略

        4、处理客户端读写请求。

        DataNode:就是Slave。NameNode 下达命令,DataNode 执行实际的操作。

        1、存储实际的数据块。

        2、执行数据块的读/写操作。

        Secondary NameNode:并非 NameNode 的热备。当NameNode 挂掉的时候,它并不能马上替换 NameNode 并提供服务。

        1、辅助 NameNode,分担其工作量。

        2、定期合并 fsimage和fsedits,并推送给NameNode。(NameNode将对文件系统的改动追加保存到本地文件系统上的一个日志文件(edits)。当一个NameNode启动时,它首先从一个映像文件(fsimage)中读取HDFS的状态,接着应用日志文件中的edits操作。然后它将新的HDFS状态写入(fsimage)中,并使用一个空的 edits文件开始正常操作。因为NameNode只有在启动阶段才合并fsimage和edits,所以一段时间后日志文件可能会变得非常庞大,特别是对大型的集群。日志文件太大的另一个副作用是下一次NameNode启动会花很长时间。 
Secondary NameNode定期合并fsimage和edits日志,将edits日志文件大小控制在一个限度下。因为内存需求和NameNode在一个数量级上,所以通常secondary NameNode(运行在单独的物理机器上)和NameNode运行在不同的机器上。Secondary NameNode通过bin/start-dfs.sh在conf/masters中指定的节点上启动。 
Secondary NameNode保存最新检查点的目录与NameNode的目录结构相同。所以NameNode可以在需要的时候读取Secondary NameNode上的检查点镜像)

        3、在紧急情况下,可辅助恢复 NameNode。


转载于:https://my.oschina.net/firstBlooded/blog/519300

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值