前言
最近在进行Hadoop相关的学习,Hadoop整体体系也很复杂,想一片文章了解说明也很难,所以我打算逐个击破,先从底层的HDFS说起。
HDFS
HDFS(Hadoop Distributed File System,分布式文件系统)
HDFS集群 由NameNode组成,NameNode管理 文件系统的metadata(元数据,记录数据的数据,记录数据属性等)和存储真实数据的DataNode
客户(Client)向NameNode 索要元数据,或文件修改内容,并且和DataNode进行io交互。
基础框架
HDFS存储流程
HDFS读取流程
内部结点介绍
NameNode(Master)
- 管理数据位置的映射信息
- 相应client的请求
- 配置副本策略
- 管理名称空间
DataNode(Slave)
Master下达命令,Slave执行命令
- 存储数据块
- 执行实际的读写操作
Secondary NameNode:
以日志形式记录对文件系统的更改,被存储在本地的edits文件中。当NameNode启动,它就从fsimage图像文件中读取HDFS状态,并且从edits日志文件中应用edits。之后它将新的HDFS状态写入fsimage ,并且以一个空的edits文件展开常规操作。因为只有在启动阶段NameNode才会融合fsimage和edits文件,在一个忙碌的集群上edits日志文件会随着时间更迭变大,这样带来得副作用时下次重启NameNode会更慢。
Secondary NameNode周期性得融合fsimage和edits日志文件,并确保edits日志大小在一个限度之内。Secondary NameNode它通常在与主NameNode不同的机器上运行,因为它的内存需求与主NameNode的顺序相同。
Secondary NameNode上得checkpoint启动由两个配置参数控制:
1:dfs.namenode.checkpoint.period,默认设置为1小时,指定连续两个checkpoint得最大延时
2.dfs.namenode.checkpoint.txns,默认设置为1 million,指定了未被检查的事务,但是他们可能会被紧急检查,即使还没到检查时间点。
Secondary NameNode将最新的checkpoint存储在一个和主NameNode相同结构的目录中,以便于主NameNode可以随时读取被检查过的image。
Checkpoint Node
NameNode将其命名空间保存在两个文件中:1.fsimage,是命名空间和edits的最新的检查关卡 2.log ,保存了checkpoint之后namespace的变化。
当一个NameNode启动,它融合fsimage和edits日志来提供一个文件系统元数据的最新视图。之后NameNode将以最新的HDFS状态重写fsimage并且启动一个新的edits日志。
CheckPoint 结点周期性地创建namespace的检查关卡。它从当前活跃的NameNode结点下载fsimage和edits文件,本地实现二者融合,然后把新的image上传到当前活跃的NameNode。
Checkpoint node通常运行在和NameNode不同的机器上因为他们的内存需求顺序是相同的。检查点节点由配置文件中指定的节点上的bin/hdfs namenode -检查点启动。
Checkpoint或者Backup Node的位置和伴随的web接口通过dfs.namenode.backup.address和dfs.namenode.http-address参数配置。
checkpoint进程的启动也是由period和txns控制。详见SecondaryNode。
多个checkpoint node节点可以在集群配置文件中指定。
Backup Node
和checkpoint node 的不同之处在于它不会上传checkpoints到Namenode。
BackupNode takes a stream instead of periodic reading of edit from NameNode.
HDFS安全模式:
数据结点热交换驱动
Datanode支持热交换驱动。用户可以在不关闭DataNode的情况下添加或替换HDFS数据卷。
热交换驱动过程:
- 如果有新的存储目录,用户应该格式化他们并正确装载。
- 用户更新DataNode配置文件 dfs.datanode.data.dir来反映被活跃使用的数据卷目录。
- 用户运行 dfsadmin -reconfig datanode HOST:PORT start 来开启重配置进程. 用户使用dfsadmin -reconfig datanode HOST:PORT status 来询问重配置任务的运行状态。
- 一旦重配置任务完成,用户就可以安全地 umount 被清除的数据和磁盘。
未完待续。。。。
几大特征概括
col 3 is | right-aligned |
col 2 is | centered |
zebra stripes | are neat |