大数据实战之认识HDFS
高容错性
数据按照配置的备份数自动保存多个副本。通过增加副本的形式,提高容错性。当某一个副本丢失后,集群会将副本再次恢复到指定的副本数。
2. 适合处理大数据
(1)数据规模:能够处理数据规模达到GB、TB甚至PB级别的数据。
(2)文件规模:能够处理百万规模以上的文件数量,数量相当之大。
3. 能够构建在廉价机器上,通过多副本机制,提高可靠性。
缺点:
1. 不适合低延时数据访问,例如毫秒级的存储数据,是做不到的。
2. 无法高效存储大量小文件。
(1)每一个小文件都需要由NameNode的内存来存储文件目录和块信息,每条记录大约占150字节,大量的小文件会导致占用NameNode的大量内存,所以这是不可取的,因为NameNode的内存是有限的。
(2)小文件存储的寻址时间会超过读取时间,它违反了HDFS的设计目标。
3. 不支持并发写入、文件随机修改
(1)一个文件只能有一个写,不允许多个线程同时写。
(2)仅支持数据append(追加),不支持文件的随机修改。
HDFS的组成架构:HDFS由NameNode(NN)、DataNode(DN)、Client和Secondary NameNode组成。
NameNode:是Master,它是一个主管、管理者
(1)管理HDFS的名称空间。
(2)配置副本策略。
(3)管理数据块(Block)映射信息。
(4)处理客户端读写请求。
2. DataNode:是Slave,NameNode下达命令后由DataNode执行实际的操作
(1)存储实际的数据块。
(2)执行数据块的读/写操作。
3. Secondary NameNode:并不是NameNode的热备(能够及时替换NN工作的备份),而是当NameNode挂掉时,辅助NameNode恢复的服务。
(1)辅助NameNode,分担其工作量,比如定期合并Fsimage(快照)和Edits(写操作日志),并推送给NameNode。
(2)在紧急情况下,可辅助恢复NameNode。