2-1.HDFS原理(Hadoop系列day02)
2016-09-23 16:15
405 查看
思考:自己设计一份分布式文件系统
hdfs有两种角色:
namenode,
datanode.
(secondarynamenode先不考虑)
一个namenode,多个datanode。
namenode相当于仓库管理员,维护自己的一个账本
datanode相当于仓库,负责存储数据
client相当于送货员
a.log:100M 货物
客户端向namenode发送一个上传数据的请求
namenode查看每个datanode信息,看哪个仓库可以放东西,
并将保存位置的信息记录下来(保存到账本上,为了以后能找到该数据)
并将这条信息发送给客户端
客户端 知道了要把文件放到哪个仓库,
与那个datanode进行联系,将数据写入到datanode里面
datanode将数据复制到其他datanode上备份
最后将写成功的信息反馈给client
注:副本并不是client写多次,而是datanode的水平复制
注:元数据信息保存在namenode里面
数据上传还会分块
Hadoop1.0 每个块默认64M
Hadoop2.0 每个块默认128M
client每写128M(一个块),就向namenode申请一个存放的datanode地址
写满一个,申请一个。。 写满一个,申请一个。。 写满一个,申请一个。。。
为什么要分块存储?
上传1G的文件,一共分8块。上传。。
上传。。
上传。。
前7块都上传成功了,第8块出现问题了。
那么怎么办呢? —只要重新写第8块就可以了。
如果不是分块的,那么写到一半失败了,只能从头再写。
读取1G文件。
读取文件读到99%,出错了。 还得从头重新开始读。
如果分块,读到第八快出错了。 直接在另一个datanode上重新读第8块即可。
分布式文件系统介绍
常见分布式文件系统
GFS、HDFS、Lustre、Ceph、GridFS、mogileFS、TFS(淘宝的分布式系统)、FastDFS、相关文章推荐
- 2-4.HDFS原理2(Hadoop系列day02)
- 2-3HDFS原理(Hadoop系列day02)
- 2-2.1.Hadoop2.0x HDFS shell命令(Hadoop系列day02)
- 2-2.HDFS的shell操作(Hadoop系列day02)
- 2-7HDFS读取数据过程(Hadoop系列day02)
- 【Hadoop】HDFS的运行原理
- hadoop2.2.0 分布式存储hdfs完全分布式搭建及功能测试记录(一)----架构及原理介绍
- hadoop基础学习-hdfs原理
- hadoop学习笔记-HDFS原理
- hadoop源码分析系列(七)——org.apache.hadoop.hdfs包完结篇——dataNode详解及总结
- hadoop单机部署伪分布式系列1:HDFS
- Hadoop实战-中高级部分 之 HDFS原理 架构和副本机制
- hadoop源码分析系列(六)——org.apache.hadoop.hdfs包之nameNode篇
- 【Hadoop】HDFS的运行原理
- 【hadoop摸索系列】记录使用libhdfs访问hdfs的关键问题
- Hadoop2.2.0中HDFS的高可用性实现原理
- Hadoop学习笔记-HDFS结构及原理
- 菜鸟的Hadoop学习之路系列<二>:Hadoop集群构成和HDFS
- hadoop源码分析系列(五)——org.apache.hadoop.hdfs包之balancer篇
- [置顶] Hadoop2.2.0中HDFS的高可用性实现原理