大数据复习(第二三章)

第二章

Hadoop简介
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算

2.1.1 Hadoop系统的安装与操作管理(P39)

第一种方式是单机方式
它允许在一台运行 Linux或 Windows下虚拟 Linux的单机上安装运行 Hadoop系统。
第二种方式是单机伪分布方式
它允许在一台运行 Linux或Windows下虚拟 Linux的单机上
第三种方式是集群分布模式,它是在一个真实的集群环境下安装运行 Hadoop系统,集群的每个节点可以运行 Linux或Windows下的虚拟 Linux。
集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。

第三章

[HDFS分布式文件系统](https://baike.baidu.com/item/hdfs/4836121?
Hadoop分布式文件系统(HDFS)是指被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File System)。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。fr=aladdin)

3.1.1 HDFS具有下列六种基本特征。(p57)

(1)大规模数据分布存储能力
HDFS以分布存储方式和良好的可扩展性提供了大规模数据的存储能力,可基于大量分布节点上的本地文件系统,构建一个逻辑上具有巨大容量的分布式文件系统,并且整个文件系统的容量可随集群中节点的增加而线性扩展。HDFS不仅可存储GB级到TB级别大小的单个文件,还可以支持在一个文件系统中存储高达数千万量级的文件数量。这种分布式文件系统为上层的大数据处理应用程序提供了完全透明的数据存储和访问功能支撑,使得应用程序完全感觉不到其数据在物理上是分布存储在一组不同机器上的。
(2)高并发访问能力
HDFS以多节点并发访问方式提供很高的数据访问带宽(高数据吞吐率),并且可以把带宽的大小等比例扩展到集群中的全部节点上。
(3)强大的容错能力
在HDFS的设计理念中,硬件故障被视作是一个常态。因此,HDFS的设计思路保证了系统能在经常有节点发生硬件故障的情况下正确检测硬件故障,并且能自动从故障中快速恢复,确保数据不丢失。为此,HDFS采用多副本数据块形式存储(默认副本数目是3),按照块的方式随机选择存储节点。
(4)顺序式文件访问
大数据批处理在大多数情况下都是大量简单数据记录的顺序处理。针对这个特性,为了提高大规模数据访问的效率,HDFS对顺序读进行了优化,支持大量数据的快速顺序读出,
代价是对于随机的访问负载较高。
(5)简单的一致性模型(一次写多次读)
HDFS采用了简单的“一次写多次读”模式访问文件,支持大量数据的一次写入、多次读取;不支持已写入数据的更新操作,但允许在文件尾部添加新的数据。
(6)数据块存储模式
与常规的文件系统不同,HDFS采用基于大粒度数据块的方式存储文件, 默认的块大小是64MB 这样做的好处是可以减少元数据的数量,并且可以允许将这些数据块通过随机方式选择节点,分布存储在不同的地方。

3.1.2 HDFS的基本框架与工作过程 (p57-p59)

1.基本组成结构与文件访问过程
HDFS是一个建立在一组分布式服务器节点的本地文件系统之上的分布式文件系统。HDFS采用经典的主-从式结构
在这里插入图片描述
DataNode用来实际存储和管理文件的数据块。文件中的每个数据块默认的大小为64MB; 同时为了防止数据丢失, 每个数据块默认有3个副本,且3个副本会分别复制在不同的节点上,以避免一个节点失效造成一个数据块的彻底丢失。
2.数据块
为了提高硬盘的效率,文件系统中最小的数据读写单位不是字节,而是一个更大的概念——数据块
将数据块设置成这么大的原因是减少寻址开销的时间。在HDFS中,当应用发起数据传输请求时, NameNode会首先检索文件对应的数据块信息,找到数据块对应的 DataNode;DataNode则根据数据块信息在自身的存储中寻找相应的文件,进而与应用程序之间交换数据。因为检索的过程都是单机运行所以要增加数据块大小,这样就可以减少寻址的频度和时间开销。

3.2 HDFS可靠性设计(P62)

3.2.1心跳包( Heart Beats)和副本重新创建( re-replication)

如果HDFS运行过程中,一部分 DataNode因为崩溃或是掉线等原因,离开了HDFS系统,怎么办? 为了保证 NameNode和各个 DataNode的联系,HDFS采用了心跳包( Heartbeat)机制。 位于整个HDFS核心的 NameNode,通过周期性的活动来检查 DataNode的活性,就像跳动的心脏一样,所以,这里把这些包就叫做心跳包。

3.3 HDFS文件存储组织与读写

3.3.1 文件数据的存储组织

HDFS中最主要的部分就是 NameNode和 DataNode。 NameNode存储了所有文件元数据、文件与数据块的映射关系,以及文件属性等核心数据, DataNode则存储了具体的数据块。

3.3.2 数据的读写过程

1.数据读取过程
在这里插入图片描述
2.数据写人过程
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值