《Hadoop》"呶呶不休"(一)HDFS设计思想和相关概念

本文详细介绍了Hadoop的分布式文件系统HDFS,包括其设计目标、优点、缺点,以及HDFS的核心概念如块、Namenode和Datanode。HDFS是一个高度容错的系统,适合大规模数据集的处理,通过块概念实现数据的分布式存储,通过Namenode和Datanode管理文件元数据和数据存储。文章还提到了SecondaryNamenode的作用,以及副本策略确保数据可靠性。
摘要由CSDN通过智能技术生成

一、HDFS简介

1、简单介绍

HDFS(Hadoop  Distributed  FileSystem),是Hadoop项目的两大核心之一,源自于Google于2003年10月发表的GFS论文,是对GFS的开源实现。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。

HDFS在设计之初,就是要运行在通用硬件(commodity hardware)上,即廉价的大型服务器集群上,因此,在设计上就把硬件故障作为一种常态来考虑,可以保证在部分硬件发生故障的情况下,仍然能够保证文件系统的整体可用性和可靠性。

HDFS有一下特点:

HDFS是一个高度容错性的系统,适合部署在廉价的机器上的分布式文件系统。
HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。
HDFS也是一个易于扩展的分布式文件系统

2、HDFS设计目标

a、大规模数据集

HDFS用来处理很大的数据集。HDFS上的文件,大小一般都在GB至TB。因此同时,HDFS应该能提供整体较高的数据传输带宽,能在一个集群里扩展到数百个节点。一个单一的HDFS实例应该能支撑千万计的文件。目前在实际应用中,HDFS已经能用来存储管理PB级的数据了。

b、硬件错误

我们应该知道,硬件组件发生故障是常态,而非异常情况。HDFS可能由成百上千的服务器组成,每一个服务器都是廉价通用的普通硬件,任何一个组件都有可能一直失效,因此错误检测和快速、自动恢复是HDFS的核心架构目标,同时能够通过自身持续的状态监控快速检测冗余并恢复失效的组件。

c、流式数据访问

流式数据,特点就是,像流水一样,不是一次过来而是一点一点“流”过来,而处理流式数据也是一点一点处理。

HDFS的设计要求是:能够高速率、大批量的处理数据,更多地响应"一次写入、多次读取"这样的任务。在HDFS上一个数据集,会被复制分发到不同的存储节点中。而各式各样的分析任务多数情况下,都会涉及数据集中的大部分数据。为了提高数据的吞吐量,Hadoop放宽了POSIX的约束,使用流式访问来进行高效的分析工作

d、简化一致性模型

HDFS应用需要一个“一次写入多次读取”的文件访问模型。一个文件经过创建、写入和关闭之后就不需要改变了。这一假设简化了数据一致性问题,并且使高吞吐量的数据访问成为可能。MapReduce应用或网络爬虫应用都非常适合这个模型。目前还有计划在将来扩充这个模型,使之支持文件的附加写操作。

e、移动计算代价比移动数据代价低

一个应用请求的计算,离它操作的数据越近就越高效,这在数据达到海量级别的时候更是如此。将计算移动到数据附近,比之将数据移动到应用所在之处显然更好,HDFS提供给应用这样的接口。

f、可移植性

HDFS在设计时就考虑到平台的可移植性,这种特性方便了HDFS作为大规模数据应用平台的推广。

3、HDFS的优缺点

通过上述的介绍,我们可以发现HDFS的优点是:

a、高容错性:数据自动保存多个副本,副本丢失后,会自动恢复。
b、适合批处理:移动计算而非数据、数据位置需要暴露给计算框架。
c、适合大数据处理:GB、TB、甚至PB级数据、百万规模以上的文

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值