HDFS简介
HDFS (Hadoop Distributed File System):分布式文件系统,用于存在文件,通过目录树来定位文件;构建在分布式集群上,集群中的服务器有各自的角色。
1、HDFS优点
可构建在廉价的机器上
高容错
数据自动保存多个副本,通过增加副本的形式,提高容错性。
当某一个副本数据块丢失后,通过自动恢复保持副本数量。
适合存储大量数据
HDFS上的一个典型文件大小一般都在G字节至T字节。MB GB TB PB ZB
HDFS支持大文件存储。
单一HDFS实例能支撑数以千万计的文件。
简单的一致性模型
HDFS应用遵循“一次写入多次读取”的文件访问模型。
简化了数据一致性问题,并且使高吞吐量的数据访问成为可能。
Map/Reduce应用或者网络爬虫应用都非常适合这个模型。
2、HDFS缺点
不适合低延迟的数据访问。
无法高效的对大量小文件进行存储。
不支持对同一个文件的并发写入。
不支持文件的随机修改。
3、HDFS架构

(1)块
(2)名称节点、数据节点和第二名称节点
HDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一定数目的Datanodes组成。Namenode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。集群中的Datanode一般是一个节点一个,负责管理它所在节点上的存储。HDFS暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组Datanode上。Namenode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体Datanode节点的映射。Datanode负责处理文件系统客户端的读写请求。在Namenode的统一调度下进行数据块的创建、删除和复制。
思考: 100台服务器,存储空间单个8TB,总存储空间为800TB,那么5TB文件如何存储?
128MB一块 128MB8=1GB 12881024=1TB
5TB数据分成的128MB的块数8192 *5。
清单:
5TB文件分的块:
元数据:
文件名称:web.log,大小:5TB ,创建时间,权限,文件所有者,文件所属的用户组,文件类型等。
文件块列表信息:
0~12810241024 -1:128MB:node1:path,node3:path,node8:path
12810241024~212810241024 -1:128MB:node2:path,node4:path,node9:path
212810241024~31281024*1024 -1:128MB:node3:path,…

