HDFS概述
一:HDFS是什么?
HDFS是分布式文件管理系统的一种,可以通过它管理多台机器上的文件。
简单地说,它是一个文件系统,通过目录树来定位文件,其次,它是分布式的,它把数据存储在多台机器上,实现大量数据的存储。
二:它的优点
(1)高容错性:每台机器上的数据都有多个备份,正在使用的数据出问题,可以由备份恢复。
(2)适合处理大数据:1、能够处理GB,TB,甚至PB级别的数据
(3)可以构建在廉价机器上,由于所有数据都有多个备份,所以很可靠。
三:它的缺点
(1)不适合低延时数据访问,比如毫秒级的存储数据它是做不到的
(2)无法高效的对大量小文件进行存储
原因 1:因为HDFS用NameNOde来管理数据,如果数据小但是数量多,那么NameNode会存储非常多的文件目录和块信息,会耗费大量NameNode的内存。
它比较适合大文件,少数量式的存储
2:HDFS的设计目标之一是数据读取时间为寻址时间的100/1左右最好。而小文件寻找起来慢,读取起来快,所以不符合HDFS的设计目标。
四:HDFS的组成架构
HDFS由NameNode、DataNode、Secondary NameNode构成
NameNode作用:(1)管理HDFS的名称空间
(2)配置副本策略
(3)管理数据块的映射信息
(4)处理客户端的读写请求(存取)
DataNode:DataNode就是存储数据的机器,HDFS把所有数据分开存储到每台DataNode上
Secondary NameNode作用:(1)辅助NameNode,分担其工作量
(2)由于它上面有NameNode的信息备份,所以在NameNode出问题时,可以恢复NameNode
五:HDFS文件块的大小
HDFS的数据存储是分块存储的,块的大小可以通过配置参数来设定。Hadoop2.x版本的数据块大小默认是128M,1.x则是64M。
注意:HDFS的块设置太小,会增加寻址时间,块设置的太大,会导致程序在处理这块数据的时候会比较慢。块大小的设置主要取决于磁盘传输速率