1.HDFS进程
NN:名称节点
DN:数据节点
SNN: 第二名称节点
2.block(数据块)
大小:64M
128M
参数: hdfs-site.xml dfs.blocksize
1个文件 是 130M 切2个块 128M 2M(实际大小)
每个瓶子容量128ML 1碗水130ML 2个瓶子 实际:128ml 2ml
3.副本数
128M 2M * 3
参数: hdfs-site.xml dfs.replication
面试题1: 1个文件 是 260M ,请问存储多大?多少个块?
4.HDFS架构设计: 主从
NN 1台:--》NN active NN standby 热备
DN 多台 机架:
自己机房 :机架 机架感知 布置提高性能 不布置降低维护且性能降低不多 可忽略
不布置机架 16台
云服务器 :不配置机架
NameNode: 文件系统的命名空间(面试题)
1.文件名称
2.文件目录结构
3.文件的属性(权限 创建时间 副本数)
4.文件对应哪些数据块-->数据块对应哪些分布在哪些DN节点上 列表
存储在内存上
DataNode: 存储数据块+ 数据块的校验和
与NN通信:
1.每隔3秒发送1次心跳
2.每隔10次心跳发送一次blockReport
存储在磁盘上
SecondaryNameNode: 当HA时,SNN不存在了
存储: 命令空间镜像文件fsimage + 编辑日志editlog
作用: 定期合并 fsimage +editlog 为新的fsimage,推送给NN,称为检查点 checkpoint
参数: dfs.namenode.checkpoint.period 3600s
实验: NN损坏,SNN去恢复
http://hmilyzhangl.iteye.com/blog/1407214
1.读写的操作记录在 editlog 不会在fsimage
NN
editlog:实时记录
fsimage:1小时
SNN: 定期合并 fsimage +editlog 为新的fsimage,推送给NN
5.副本放置策略
6.文件读流程 面试题
[hadoop@hadoop000 ~]$ hdfs dfs -cat /rz.log
www.ruozedata.com
[hadoop@hadoop000 ~]$
读操作是对于client端是透明操作,感觉是连续的数据流
一个块 3个副本 3个ip
1.伪分布式1台DN
改为2个副本,存储时也是1个副本
2.一份数据假如有两个块,这两个块一定会在一个datanode吗? 可能
3.safe mode:不能写 只读