您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Hadoop中HDFS源代码分析
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源代码分析-1-一、Hadoop系统基础1.1、Hadoop简介Hadoop由ApacheSoftwareFoundation公司于2005年秋天作为Lucene的子项目Nutch的一部分正式引入。它受到最先由Google开发的MapReduce和GoogleFileSystem的启发,2006年3月份,MapReduce和NutchDistributedFileSystem(NDFS)分别被纳入称为Hadoop的项目中。Hadoop是最受欢迎的在Internet上对搜索关键字进行内容分类的工具,但它也可以解决许多要求极大伸缩性的问题。在Hadoop中实现了Google的MapReduce算法,它能够把应用程序分割成许多很小的工作单元,每个单元可以在任何集群节点上执行或重复执行。此外,Hadoop还提供一个分布式文件系统用来在各个计算节点上存储数据,并提供了对数据读写的高吞吐率。由于应用了map/reduce和分布式文件系统,使得Hadoop框架具有高容错性,它会自动处理失败节点。Hadoop是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop还是可伸缩的,能够理PB级数据。此外,Hadoop依赖于社区服务器,因此它的成本比较低,任何人都可以使用。Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上是非常理想的。Hadoop上的应用程序也可以使用其他语言编写,比如C++。Hadoop是一个能够对大量数据进行分布式处理的软件框架。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。在很多大型网站上都已经得到了应用,如亚马逊,Facebook,雅虎,新浪,淘宝等。Hadoop中HDFS源代码分析-2-1.2、Hadoop的项目组成Hadoop的子项目1.HadoopCommon:就是原来的HadoopCore,它是一系列分布式文件系统和通用I/O的组件和接口。是整个Hadoop项目的核心,其他Hadoop子项目都是在HadoopCommon的基础上发展起来的。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的开源实现。MapReduce是一种简化的并行计算模型,由Map和Reduce组Hadoop中HDFS源代码分析-3-成,分别进行任务的分解和对结果的汇总。7.Hive:是一种提供数据摘要和查询功能的分布式数据仓库,管理HDFS中存储的数据。Hive支持的查询是类似SQL方式的陈述语言:HiveQL,这种查询被编译进MapReduce的job用以Hadoop的执行。8.Pig:是在MapReduce上构建的一种高级的数据流语言,用
本文标题:Hadoop中HDFS源代码分析
链接地址:https://www.777doc.com/doc-4239134 .html