HDFS组成部分及其作用
在开始阅读之前让我们喊出口号:“要想人前显贵,就要人后受罪!”加油嘎嘣儿,加油所有想获得美好未来的你!
一、组成部分
1. Client客户端
2. NameNode主节点
3. SecondaryNameNode 理解为:(NameNode 的备份,属于冷备份)
二、各部分的作用
Client
Client:发布命令,集群操作,监听(获取集群的运行状态),分块(逻辑分块:之规定的最大没有规定最小即使有两个不满64M(Hadoop2.0是128M)也不可以进行合并)。
NameNode
NameNode:管理集群,接收DateNode的心跳并通过心跳给DateNode发送指令,以及获取bolck的元数据的信息和确认DateNode是否宕机。
SecondaryNameNode:没半个小时以Httpget方式获取NameNode的fsimage+edits,然后将fsimage和edits进行本地合并生成fsimage_ckpt,然后将fsimage_ckpt发送到NameNode中,替换原先的fsimage,当然在Httpget形式远程拉取复制文件的同时在NameNode里会先生成一个edits_new文件,目的是为了防止在合并的半小时内的数据丢失。
DateNode
DateNode:用来存储数据block 文件,注意:同一个机器不应存储同一个block块副本,一个机架也不应该存储相同的副本。
三、相关知识点
- 机架感知:找文件时遵循就近原则。
- 冷备份:会间隔一段时间进行备份。热备份:时时备份
- 数据放在那里又NameNode决定
- 一个数据块在DateNode是以文件的形式进行存储,包括两个文件:a.数据本身b.元数据 包括了数据块的长度,数据块的校验和,以及时间戳。
- DateNode 启动后向NameNode进行注册,当注册通过后会周期性的向NameNode上报所有的块信息
- 安全模式:hdfs启动后会先启动NameNode,这个时候只有主节点没有从节点,但是元数据是存在的,我们可以看见文件列表,可以创建、删除、移动或者重命名文件,但是就是不可以修改文件的内容。
- HDFS权限的目的:是阻止好人做坏事,而不是阻止坏人做坏事。
- NameNode和DateNode 之间用的心跳都是RPC协议是TCP的上层,这样的协议会保证数据不丢失。而然Http协议特点就是使用快速方便,不等人。
- HDFS是不允许大量小的文件进行存储,因为这样不仅占内存(日志量会变得巨大),又消耗block的内存空间,导致降低系统性能。