欢迎来到天天文库
浏览记录
ID:43445564
大小:735.97 KB
页数:36页
时间:2019-10-02
《Hadoop中HDFS源代码分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、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休系结构2.3>NameNode・9-2.4、DataNode-10-三、HDFS的实现代码分析-H-3J、org.apache,hadoop.io・11-3.2、RPC的实现方法-13-321、Client类-13-3.2.2、Server类-15-3.2・3、RPC类・17・3.2
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系统基础1.1、Hadoop简介Hadoop由ApacheSoftwareFoundation公司于2005年秋天作为Lucene的子项目Nutch的一部分
3、正式引入。它受到最先由Google开发的MapReduce和GoogleFileSystem的启发,2006年3月份,MapReduce和NutchDistributedFileSystem(NDFS)分别被纳入称为Hadoop的项目中。Hadoop是最受欢迎的在Internet±对搜索关键字进行内容分类的工具,但它也可以解决许多要求极大伸缩性的问题。在Hadoop中实现TGoogle的MapReduce算法,它能够把应用程序分割成许多很小的工作单元,每个单元可以在任何集群节点上执行或重复执行。此外,Hadoop述提供一个分布式文件系统用来在各个计算节点上存储数据,并
4、提供了对数据读写的高吞吐率。由于应用了map/reduce和分布式文件系统,使得Hadoop框架具冇高容错性,它会自动处理失败节点。Hadoop是以一种町靠、高效、可伸缩的方式进行处理的。Hadoop是可靠的,因为它假设计算元索和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop还是可伸缩的,能够理PB级数据。此外,Hadoop依赖于社区服务器,因此它的成本比较低,任何人都可以使用。Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上是非常
5、理想的。Hadoop上的应用程序也可以使用其他语言编写,比如C卄。Hadoop是一个能够对大量数据进行分布式处理的软件框架。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。在很多大型网站上都已经得到了应用,如亚马逊,Facebook,雅虎,新浪,淘宝等。1.2、Hadoop的项目组成PigChukwaHiveHBaseMapReduceHDFSZooKeeperHadoopCommonAvroHadoop的子项目1.HadoopCommon:就是原来的HadoopCore,它是一系列分布式文件系统和通用I/O的组件和接口。是整
6、个Hadoop项n的核心,其他Hadoop子项R都是在HadoopCommon的基础上发展起来的。2.Avro:一种提供高效、跨语言RPC的数据序列系统,持久化数据存储。3.ZooKeeper:一个分布式的、高可用性的协调服务。用于解决分布式系统屮一致性问题,是Chubby的开源实现。4.HBase:是一个开源的、基于列存储模型的分布式数据库,是Bigtable的开源实现。HBase使用HDFS作为底层存储,同时支持MapReduce的批量式计算和点查询(随机读取)。5.HDFS:提供高吞吐量的分布式文件系统,是GFS的开源实现。HDFS是分布式计算的存储基础。HDF
7、S具有高容错性,可以部署在廉价的硕件设备上,适合那些有大数据集的应用,并且提供对数据读写的高吞吐量。HDFS能够提供对数据的可扩展访问,通过简单地往集群里添加节点就可以解决大量客户端同吋访问的问题。HDFS支持传统的层次文件组织结构,同现有的一些文件系统类似,如可以对文件进行创建、删除、重命名等操作。6.MapReduce:大型数据的分布式处理模型,以在大型集群上执行分布式应用的简单性和可用性著称。Hadoop的MapReduce是Google的MapReduce的开源实现。MapReduce是一种简化的并行计算模型,由Map和Reduce组成,分别
此文档下载收益归作者所有