Java大数据之路--HDFS详解(1)--概述

HDFS(分布式文件存储系统)--概述

目录

HDFS(分布式文件存储系统)--概述

一、概述

二、特点

优点:

缺点:


一、概述

  1. 全称为Hadoop Distributed File System ,Hadoop分布式文件存储系统
  2. HDFS是根据谷歌的论文:《The Google File System》进行设计的
  3. 本身是一个分布式的,可扩展,可靠的文件系统
  4. HDFS中包含三个主要的进程:NameNode,DataNode,SecondaryNameNode。这三个进程一般是分布式不同的主机上,所以一般习惯上是用进程的名字称呼节点

二、特点

优点:

  1. 支持超大文件。超大文件在这里指的是几百M,几百GB,甚至几TB大小的文件。一般来说Hadoop的文件系统会存储TB级别或者PB级别的数据。所以在企业的应用中,数据节点有可能有上千个
  2. 检测和快速应对硬件故障。在集群的环境中,硬件故障是常见的问题。因为有上千台服务器连接在一起,这样会导致高故障率。因此故障检测和自动恢复(心跳机制)是HDFS文件系统的一个设计目标
  3. 流式数据访问。HDFS的数据处理规模比较大,应用一次需要访问大量的数据,同时这些应用一般都是批量处理,而不是用户交互式处理。应用程序能以流的形式访问数据集。主要的是数据的吞吐量,而不是访问速度
  4.  简化的一致性模型。大部分hdfs操作文件时,需要一次写入,多次读取。在HDFS中,一个文件一旦经过创建、写入、关闭后,一般就不需要修改了。这样简单的一致性模型,有利于提高吞吐量
  5. 高容错性。数据自动保存多个副本,副本丢失后自动恢复
  6. 可构建在廉价机器上。构建在廉价机器上可以轻松的通过扩展机器数量来近乎线性的提高集群存储能力

缺点:

  1. 不能低延迟数据访问。如和用户进行交互的应用,需要数据在毫秒或秒的范围内得到响应。由于Hadoop针对海量数据的吞吐量做了优化,牺牲了获取数据的延迟,所以对于低延迟来说,不适合用hadoop来做
  2. 不适合存储大量的小文件。HDFS支持超大的文件,是通过数据分布在数据节点,数据的元数据保存在名字节点上。名字节点的内存大小,决定了HDFS文件系统可保存的文件数量。虽然现在的系统内存都比较大,但大量的小文件还是会影响名字节点的性能
  3. 不支持多用户写入、修改文件。HDFS的文件只能有一次写入,不支持修改和追加写入(2.0版本支持追加),也不支持修改。只有这样数据的吞吐量才能大
  4. 不支持超强的事务。没有像关系型数据库那样,对事务有强有力的支持,不会因为一个块的丢失影响全部数据,因为数据量太大。

猜你喜欢

转载自blog.csdn.net/a34651714/article/details/102812441