

# 图 0 -HDFS的体系结构
client将第一副本放到最靠近的一台DN
第二副本优先放到另一个机架
以此类推,尽量保证副本放在不同的机架
由于副本和分块机制的存在,当从本地文件系统向HDFS上传文件时,其内部的流程相对比较复杂,可以通过下图及步骤说明进行理解。

# 图 1-1 -hdfs副本存储机制(3副本)
client向NN(NameNode)发起存储请求,
NN查找自身是否已有相应的文件,
若无则,NN向client返回DN1(DataNode)路径,
client向DN1传送副本,
DN1通过管道异步向DN2传副本,
DN2通过管道异步向DN3传副本,
DN3通知DN2接收完成,
DN2通知DN1接收完成,
DN1通知NN接收完成。
从前述可见,在向HDFS传输文件的过程中,NameNode节点至关重要。NN负责掌管元数据。其作用相当于物理硬盘中的文件分配表FAT,NN中的数据如果发生丢失,DN中存储的数据也就没有了意义。

# 图 1-2 -NN元数据存储机制
client向NN请求写,
NN将分配block写入editslog文件,
NN响应client,
client向DN写文件,
client通知NN写完成,
NN将editslog更新到内存。
ps:常用及最新元数据放在内存,最新元数据放editslog,老元数据放fsimage,editslog写满之前将edits log(新元数据)转换并合并到fsimage。

# 图 1-3 -edits log合并机制
当editslog写满:
NN通知SecondryNameNode执行checkpoint操作,
NN停止向已满editslog写入,
NN创建新edits log维持写入,
SN下载NN的fsimage和已满editslog,
SN执行合并生成fsimage。checkpoint,
SN向NN上传fsi。cp,
NN将fsi。cp改名fsimage,
NN删除已满editslog。

# 图3 -元数据格式:文件全路径,副本数,块编号,块-所在DN的映射。
更多精彩推荐:
HDFS数据存储与读写过程

云计算开发工程师
大数据开发工程师
Web前端开发工程师
PHP开发工程师
测试开发工程师
运维开发工程师
2、五险一金:按规定为员工办理五项社会保险及住房公积金。
3、节日福利丰富,定期旅游,各项体育竞赛。
4、公司为员工提供免费住宿,员工可享受免费工作午餐。
5、年假、法定节假日按国家规定休息。
6、不定期大餐,丰盛的下午茶。
我们是一群有专业技术知识和远大理想抱负的年轻人,这里的每一个人都有着鲜明的个性,IT宅男、技术宅、活力、热情、激情是这里的符号。我们一直在做自己喜欢的事情,每个人都希望能用自己擅长的技术做出成功的产品来体现个人价值,团队价值。在这里,你有无限的职业发展空间。
We want you, just you !
还不快来投简历!
研发部邮箱:shiw@efly.cc






