HDFS简介
一、概述
1.全程为Hadoop Distributed File System,Hadoop分布式文件存储系统。
2.HDFS是根据谷歌的论文:《The Google File System》进行设计的。
3.本身是一个分步式的,可扩展,可靠的文件系统。
4.HDFS中包含三个主要的进程:NameNode,DateNOde,SecondaryNameNode。这三个进程一般是分布在不同的主机上,所以一般是进程的名字称呼节点。
二、特点
1.优点:
a.支持超大文件。
b.检测和快速对应硬性故障。故障检测和自动恢复(心跳机制)
c.流式数据访问。HDFS的数据处理规模比较大,应用一次需要访问大量的数据,同时这些应用一般都是批量处理,而不是用户交互式处理。应用程序能以流的形式访问数据集。主要的是数据的吞吐量,而不是访问速度。
d.简单的一致性模型。大部分hdfs操作文件时,需要一次写入,多次读取。在HDFS中,一个文件一旦经过创建、写入、关闭后,一般就不需要再修改了。这样简单的一致性模型,有利于提高吞吐量。
e.高容错性。数据自动保存多个副本,副本丢失后自动恢复
f.可构建在廉价机器上。构建在廉价机器上可以轻松的通过扩展机器数量来近乎线性的提高集群存储能力。
2.缺点:
a.不能低延迟数据访问。如和用户进行交互的应用,需要数据在毫秒或者秒的范围得到响应。由于Hadoop针对海量数据的吞吐量做了优化,牺牲了获取数据的延迟,所以对于低延迟来说,不适合haddoop来做
b.不适合存储大量的小文件。HDFS支持超大的文件,是通过数据分布在数据节点,数据的元数据保存在名字节点上。名字节点的内存大小,决定了HDFS文件系统可保存的文件数量。虽然现在的系统内存都比较大,但大量的小文件还是会影响名字节点的性能。
c.不支持多用户写入、修改文件。HDFS的文件只能有一次写入,不支持修改和追加写入(2.0版本支持追加),也不支持修改。只有这样数据的吞吐量才能大。
d.不支持超强的事务。没有像关系型数据库那样,对事务有强有力的支持。