HDFS概述
HDFS(Hadoop Distributed File System),他是一个文件系统,用于存储文件,通过目录树来定位文件。它是分布式文件管理系统。
HDFS优缺点
优点
-
高容错性。
-
数据自动保存多个副本。通增加副本的形式,提高容错性
-
某个副本丢失后,他可以自动恢复。
-
-
适合处理大数据
- 数据规模大
- 文件规模大
-
可构建在廉价机器上,通过多副本机制,提高可靠性
缺点
- 不适合低延迟数据访问,比如毫秒级的存储数据
- 无法高效的对大量小文件进行存储
- 不支持并发写入、文件随机修改
- 一个文件只能有一个写,不允许多个线程同时写。
- 仅支持数据append(追加),不支持文件的随机修改
HDFS组成
NameNode(nn)
NameNode就是Master,它是一个主管、管理者
- 管理HDFS的名称空间
- 管理副本策略
- 管理数据块(Block)映射信息
- 处理客户端读写请求。
DataNode
DataNode就是Slave。NameNode下达命令,DataNode执行实际的操作。
- 存储实际的数据块
- 执行数据块的读/写操作
Client
客户端
- 文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行上传
- 与NameNode交互,获取文件的位置信息
- 与DataNode交互,读取或者写入数据
- Client提供一些命令来管理HDFS
- Client可以通过一些命令来访问HDFS
Secondary NameNode
- 辅助NameNode,分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode
- 在紧急情况下,可以辅助恢复NameNode
HDFS文件块大小
HDFS块大小的设置主要取决于磁盘传输速率