Hadoop 2.0工作原理学习

1 HDFS简介

1.1 Hadoop 2.0介绍

Hadoop是Apache的一个分布式系统基础架构,可以为海量数据提供存储和计算。Hadoop 2.0即第二代Hadoop系统,其框架最核心的设计是HDFS、MapReduce和YARN。其中,HDFS为海量数据提供存储,MapReduce用于分布式计算,YARN用于进行资源管理。

Hadoop 1.0和Hadoop 2.0的结构对比:


Hadoop 2.0的主要改进有:

1、通过YARN实现资源的调度与管理,从而使Hadoop 2.0可以运行更多种类的计算框架,如Spark等。

2、实现了NameNode的HA方案,即同时有2个NameNode(一个Active另一个Standby),如果ActiveNameNode挂掉的话,另一个NameNode会转入Active状态提供服务,保证了整个集群的高可用。

3、实现了HDFS federation,由于元数据放在NameNode的内存当中,内存限制了整个集群的规模,通过HDFS federation使多个NameNode组成一个联邦共同管理DataNode,这样就可以扩大集群规模。

4、Hadoop RPC序列化扩展性好,通过将数据类型模块从RPC中独立出来,成为一个独立的可插拔模块。

1.2 HDFS概述

HDFS是一个分布式文件系统,具有高容错的特点。它可以部署在廉价的通用硬件上,提供高吞吐率的数据访问,适合需要处理海量数据集的应用程序。

主要特点:

1、支持超大文件:支持TB级的数据文件。

2、检测和快速应对硬件故障:HDFS的检测和冗余机制很好克服了大量通用硬件平台上的硬件故障问题。

3、高吞吐量:批量处理数据。

4、简化一致性模型:一次写入多次读取的文件处理模型有利于提高吞吐量。

HDFS不适合的场景:低延迟数据访问;大量的小文件;多用户写入文件、修改文件。

HDFS的构成:NameNode保存着HDFS的名字空间,对于任何对文件系统元数据产生修改的操作;DataNode将HDFS数据以文件的形式存储在本地文件系统中,它并不知道有关HDFS文件的信息。

数据块:数据块是HDFS的文件存储处理单元,在Hadoop 2.0中默认大小为128MB,可根据业务情况进行配置。数据块的存在,使得HDFS可以保存比存储节点单一磁盘大的文件,而且简化了存储管理,方便容错,有利于数据复制。

1.3 HDFS读写流程

读文件的流程:1、客户端client使用open函数打开文件;2、DistributedFileSystem用RPC调用元数据节点,得到文件的数据块信息;3、对于每一个数据块,元数据节点返回保存数据块的数据节点的地址;4、DistributedFileSystem返回FSDataInputStream给客户端,用来读取数据;5、客户端调用FSDataInputStream的read函数开始读取数据;6、FSDataInputStream连接保存此文件第一个数据块的最近的数据节点;7、Data从数据节点读到客户端;8、当此数据块读取完毕时,FSDataInputStream关闭和此数据节点的连接,然后连接此文件下一个数据块的最近的数据节点;9、当客户端读取数据完毕时,调用FSD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值