block默认大小128M dfs.block.size=128MB
保存多个副本
由Name Node, Secondary Name Node和Data Node组成
Name Node
存储元信息
1. 文件,文件目录的层级关系
2. 文件,文件目录的权限
3. 文件由哪些块组成
4. block和data node之间的映射
元数据保存在内存中
太多的小文件会造成 block过多(block不能跨文件), 元数据过多,给Name node造成较大的压力,同是, block较大能够减少磁盘寻址时间和传输时间
内存中的元数据会被持久化成fsimage, 对文件的操作会持久化到edit log中,secondary name node 会定期对fsimage和eidt log进行合并。Name node重启会根据fsimage恢复
Data Node
1. 为客户端提供读写服务
2. 根据Name Node的指示进行创建,删除,移动,复制
3. 心跳向Name Node报告block信息
4. Data Node之间的通信 ,块副本的处理(备份三分)
Block存放机制 - 机架感知 - 不同机架,不同机房。
写数据
1. client发送请求给name node
2. name node 接受请求然后为每个block分配data node (3个)
3. client和第1个data node 开始传递package1 (4 KB)
4. data node1 写完package1后,data node2,data node3一次开始复制package1
5. 同是data node1继续读取package2
6. 直到3个data node写完整个block,通知name node, name node再继续指定3个data node写入block2…
读数据
1. client向name node提交读请求
2. name node发送block 地址
3. client 从data node 读block