hdfs体系架构及分析
HDFS简介
Hadoop Distributed File System(简称HDFS)是Hadoop分布式文件系统。以流式数据访问模式来存储超大文件,运行与硬件的集群之中。
HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。
对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的,这是由它自身的特点决定的。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于仅存在一个 NameNode,因此这是 HDFS 的一个缺点(单点失败)。
存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的RAID架构大不相同。块的大小(通常为 64MB或128M)和复制的块数量在创建文件时由客户机决定。NameNode 可以控制所有文件操作。HDFS 内部的所有通信都基于标准的TCP/IP 协议。
HDFS体系架构
HDFS集群有两类节点并以管理者-工作者模式运行,即一个管理者和多个工作者。NameNode管理文件系统的命名空间。它维护着文件系统树及整个树内的所有文件和目录。这些信息以两个文件保存磁盘中:命名空间镜像文件和编辑日志文件。Namenode同时也记录着每个文件中各个块所在的数据节点信息,但它并不永久保存块的位置信息,这些信息会在系统启动时由数据节点重建。
数据块
与一般文件系统一样,HDFS也有块(Block)的概念,默认大小为64M或128M,HD