hdfs学习总结

1.启动hdfs进程名称

namenode 名称节点
datanode 数据节点
secondary namenode 第二名称节点

2.分块存储之前默认64m,现在默认128m  (dfs.blocksize 128m)例子:

一个文件 110M    110/128    分为1 块     第一块 110M
130M 130/128 分为2 块   第一块 128M 第二块 2M (128M)

3.存放的副本数假如设置三份  (dfs.replication: 3)如下: 

一个文件 110M * 3 110/128 = 1 *3 块  第一块 110M  第二块 110M  第三块 110M
130M 130/128 = 2 块 第一块 128M 第二块 2M (128M)

4.hdfs架构设计:

hdfs由namenode节点,datanode节点,secondary namenode节点组成。

namenode主节点负责文件元数据的操作,作用是存储 命名空间:fsimage+editlog(hadoop操作命令的日志)   存放文件的属性(文件名称+目录结构+文件属性+生成时间+副本数+文件权限等)    文件存储在datanode位置( 文件+块+机器(datanode))    记录着每个文件中各个块所在的数据节点的位置信息,但是他并不持久化存储这些信息,因为这些信息会在系统启动时从数据节点重建

datanode从节点负责处理文件内容的读写请求,跟文件内容相关的数据流不会经过Namenode,只会询问它数据存放在哪个DataNode,否则Namenode会成为系统的瓶颈。

一个数据块在Datanode以文件存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳 。作用是存储数据块 block  每隔3秒向datanode发送一个心跳包接收到心跳信号意味着该Datanode节点工作正常。10个心跳 发生一个blockReport ,块状态报告包含了一个该Datanode上所有数据块的列表。

secondary namenode 第二名称节点

存储:fsimage+editlog
作用:每隔1小时 checkpoint 去namenode的拿fsimage+editlog ,合并成fsimage.ckpt,推送给namenode,
参数设置: dfs.namenode.checkpoint.period 3600

问题:
1.namenode 进程挂了,文件路径还在,重启namennode
2.namenode 机器挂了,文件路径不存在(文件损坏,磁盘损坏), secondary namenode的fsimage(11点)来恢复namenode,
那么59分钟的数据,操作日志丢了

 

hdfs分布式文件存储系统特点:分块存储,冗余,可扩展

posted @ 2017-08-27 23:11  yangbk  阅读(224)  评论(0编辑  收藏  举报