没有合适的资源?快使用搜索试试~ 我知道了~
首页Hadoop之HDFS源代码分析 pdf
资源详情
资源评论
资源推荐
Hadoop中HDFS源代码分析
目 录
一、Hadoop系统基础 .................................................................................................- 1 -
1.1、Hadoop简介...................................................................................................- 1 -
1.2、Hadoop的项目组成 .................................................................................- 2 -
1.3、Hadoop基本架构模型...................................................................................- 3 -
1.4、Hadoop集群...................................................................................................- 5 -
二、Hadoop文件系统(HDFS)..................................................................................- 6 -
2.1、HDFS主要功能组件.......................................................................................- 7 -
2.2、HDFS体系结构 .............................................................................................- 8 -
2.3、NameNode .....................................................................................................- 9 -
2.4、DataNode .....................................................................................................- 10 -
三、HDFS的实现代码分析 ....................................................................................- 11 -
3.1、org.apache.hadoop.io ...................................................................................- 11 -
3.2、RPC的实现方法............................................................................................- 13 -
3.2.1、Client类.................................................................................................- 13 -
3.2.2、Server类 ................................................................................................- 15 -
3.2.3、RPC类 ...................................................................................................- 17 -
3.2.4、HDFS通信协议组 ................................................................................- 18 -
3.3、名称节点的实现方法..................................................................................- 20 -
3.3.1、FSImage类 ............................................................................................- 21 -
3.3.2、FSEditLog类 .........................................................................................- 22 -
3.3.3、FSNamesystem类 .................................................................................- 23 -
3.4、数据节点的实现方法..................................................................................- 27 -
3.4.1、数据节点的设计...................................................................................- 27 -
3.4.2、数据处理的设计...................................................................................- 28 -
3.5、客户端实现方法..........................................................................................- 30 -
3.5.1、数据读取的设计...................................................................................- 30 -
3.5.2、数据写入的设计...................................................................................- 32 -
四、总结...................................................................................................................- 33 -
Hadoop中HDFS源代码分析
一、Hadoop系统基础
1.1
、
Hadoop
简介
Hadoop由 Apache Software Foundation 公司于 2005 年秋天作为 Lucene的子
项目 Nutch 的一部分正式引入。它受到最先由 Google 开发的MapReduce
和GoogleFileSystem的启发,2006年3月份,MapReduce 和 Nutch Distributed
File System (NDFS) 分别被纳入称为 Hadoop 的项目中。Hadoop 是最受欢迎的在
Internet 上对搜索关键字进行内容分类的工具,但它也可以解决许多要求极大伸
缩性的问题。在Hadoop中实现了Google的MapReduce算法,它能够把应用程序分
割成许多很小的工作单元,每个单元可以在任何集群节点上执行或重复执行。此
外,Hadoop还提供一个分布式文件系统用来在各个计算节点上存储数据,并提供
了对数据读写的高吞吐率。由于应用了map/reduce和分布式文件系统,使得Hado
op框架具有高容错性,它会自动处理失败节点。
Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop 是可靠的,
因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针
对失败的节点重新分布处理。Hadoop 是高效的,因为它以并行的方式工作,通过
并行处理加快处理速度。Hadoop 还是可伸缩的,能够理 PB 级
数据。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使
用。Hadoop带有用 Java
语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop上的应用
程序也可以使用其他语言编写,比如C++。
Hadoop 是一个能够对大量数据进行分布式处理的软件框架。用户可以在不
了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算
和存储。在很多大型网站上都已经得到了应用,如亚马逊,Facebook,雅虎,新浪
,淘宝等。
1.2
、
Hadoop
的项目组成
- 1 -
Hadoop中HDFS源代码分析
Hadoop的子项目
1. Hadoop Common:就是原来的Hadoop
Core,它是一系列分布式文件系统和通用I/O
的组件和接口。是整个Hadoop项目的核心,其他Hadoop子项目都是在Hadoop
Common的基础上发展起来的。
2. Avro:一种提供高效、跨语言RPC 的数据序列系统,持久化数据存储。
3.
ZooKeeper:一个分布式的、高可用性的协调服务。用于解决分布式系统中一致性
问题,是Chubby的开源实现。
4. HBase:是一个开源的、基于列存储模型的分布式数据库,是Bigtable
的开源实现。HBase 使用HDFS
作为底层存储,同时支持MapReduce的批量式计算和点查询(随机读取)。
5. HDFS:提供高吞吐量的分布式文件系统,是 GFS 的开源实现。HDFS
是分布式计算的存储基础。HDFS具有高容错性,可以部署在廉价的硬件设备上,
适合那些有大数据集的应用,并且提供对数据读写的高吞吐量。HDFS能够提供
对数据的可扩展访问,通过简单地往集群里添加节点就可以解决大量客户端同
时访问的问题。HDFS支持传统的层次文件组织结构,同现有的一些文件系统类
似,如可以对文件进行创建、删除、重命名等操作。
6.
MapReduce:大型数据的分布式处理模型,以在大型集群上执行分布式应用的简
单性和可用性著称。Hadoop的MapReduce是Google的MapReduce的开源实现。Ma
pReduce是一种简化的并行计算模型,由Map和
Reduce组成,分别进行任务的分解和对结果的汇总。
- 2 -
Hadoop中HDFS源代码分析
7.
Hive:是一种提供数据摘要和查询功能的分布式数据仓库,管理HDFS中存储的
数据。Hive支持的查询是类似SQL方式的陈述语言:HiveQL
,这种查询被编译进MapReduce的job用以Hadoop的执行。
8.
Pig:是在MapReduce上构建的一种高级的数据流语言,用以检索非常大的数据集
,它是Sawzall的开源实现。Sawzall是一种建立在
MapReduce基础上的领域语言,它的程序控制结构(如 if、while 等)与
C语言无异,但它的领域语言语义使它完成相同功能的代码比MapReduce的C++
代码简洁。
9. Chukwa:一个用来管理大型分布式系统的数据采集系统。Chukwa
运行HDFS 中存储数据的收集器,它使用MapReduce 来生成报告。
1.3
、
Hadoop
基本架构模型
Hadoop框架中最核心的设计就是HDFS和MapReduce。HDFS是Hadoop分布式文
件系统的缩写,为分布式计算存储提供了底层支持。MapReduce的思想是由Goog
le的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就是任务的
分解与结果的汇总。MapReduce和HDFS的关系如下图:
Hadoop内部结构图
- 3 -
剩余30页未读,继续阅读
巧克力的夏季
- 粉丝: 15
- 资源: 39
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5