1. HDFS的设计思路?
hdfs是分布式的文件系统,用来在廉价的集群上做大数据量的存储。
1.大文件被切割成小文件,使用分而治之的思想让很多服务器对同一个文件进行联合管理
2.每个小文件做冗余备份,并且分散存到不同的服务器,做到高可靠不丢失
2. HDFS的架构?
namenode:集群老大,掌管文件系统目录树,处理客户端读且请求
SecondaryNamenode:持久化元数据,主要给 namenode 分担压力之用
DataNode:存储整个集群所有数据块,处理真正数据读写
3. HDFS的特性?
- HDFS 中的文件在物理上是分块存储(block),块的大小可以通过配置参数(dfs.blocksize)来规定,默认大小在 hadoop2.x 版本中是 128M,老版本中是 64M
- HDFS 文件系统会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件
- namenode 是 HDFS 集群主节点,负责维护整个 hdfs 文件系统的目录树,以及每一个路径(文件)所对应的 block 块信息(block 的 id,及所在的 datanode 服务器)
- datanode 是 HDFS 集群从节点,每一个 block 都可以在多个 datanode 上存储多个副本(副本数量也可以通过参数设置 dfs.replication,默认是 3)
- HDFS 是设计成适应一次写入,多次读出的场景,且不支持文件的修改
4. HDFS的优缺点?
- 优点:
- 可构建在廉价机器上,通过多副本提高可靠性,提供了容错和恢复机制
- 高容错性,数据自动保存多个副本,副本丢失后,自动恢复
- 适合批处理,移动计算而非数据,数据位置暴露给计算框架
- 适合大数据处理,GB、TB、甚至 PB 级数据
- 流式文件访问,一次性写入,多次读取,保证数据一致性
- 缺点:
- 低延迟数据访问,不适合于低延迟高吞吐
- 小文件存取,不适用与小文件存储,占用空间,寻道时间超过读取时间
- 不支持并发写入,和随机读取。hdfs同一时间只能有一个写入者,并且不支持多次插入,只能追加
转载于:https://blog.51cto.com/14048416/2341568