`
杨俊华
  • 浏览: 97224 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

比较全的hadoop分析,备用

阅读更多

Hadoop 源代码分析(1)overview
http://caibinbupt.javaeye.com/blog/262412
Hadoop 源代码分析(2)package
http://caibinbupt.javaeye.com/blog/270378

Hadoop 源代码分析(3)org.apache.hadoop.io
http://caibinbupt.javaeye.com/blog/277640

Hadoop 源代码分析(4)

Hadoop 源代码分析(5)org.apache.hadoop.rpc
http://caibinbupt.javaeye.com/blog/278778
RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。当我们讨论HDFS的,通信可能发生在:
Client-NameNode之间,其中NameNode是服务器
Client-DataNode之间,其中DataNode是服务器
DataNode-NameNode之间,其中NameNode是服务器
DataNode-DateNode之间,其中某一个DateNode是服务器,另一个是客户端
Hadoop 源代码分析(6)org.apache.hadoop.rpc.Client
http://caibinbupt.javaeye.com/blog/280790

Hadoop 源代码分析(7)org.apache.hadoop.rpc.Server
http://caibinbupt.javaeye.com/blog/281281

Hadoop 源代码分析(8)org.apache.hadoop.rpc
http://caibinbupt.javaeye.com/blog/281476

Hadoop 源代码分析(9)HDFS Overview and DataNode
http://caibinbupt.javaeye.com/blog/282580

Hadoop 源代码分析(10)HDFS 工作状态
http://caibinbupt.javaeye.com/blog/282735

Hadoop 源代码分析(11)HDFS 升级,回滚,提交
StorageInfo, Storage, Storage.StorageDirectory, DataStorage
http://caibinbupt.javaeye.com/blog/283480
http://caibinbupt.javaeye.com/blog/283811

Hadoop 源代码分析(12)HDFS DataNode
FSDataSet, FSDataSet.FSVolumeset, FSDataSet.FSVolume, FSDataSet.FSDir, Block, BlockInfo
http://caibinbupt.javaeye.com/blog/284365

Hadoop 源代码分析(13)分析DataNode上的动态行为, 读Block的过程
DataXceiverServer, DataXceiver, BlockSender, BlockReceiver
http://caibinbupt.javaeye.com/blog/284979

Hadoop 源代码分析(14)HDFS 写Block的过程
http://caibinbupt.javaeye.com/blog/286259

Hadoop 源代码分析(15)HDFS 的其他操作
OP_READ_METADATA (82):读数据块元文件
OP_REPLACE_BLOCK (83):替换一个数据块
OP_COPY_BLOCK (84):拷贝一个数据块
OP_BLOCK_CHECKSUM (85):读数据块检验码
http://caibinbupt.javaeye.com/blog/286533

Hadoop 源代码分析(16)DataBlockScanner用于定时对数据块文件进行校验
http://caibinbupt.javaeye.com/blog/286650

Hadoop 源代码分析(17)DataNode
1) 在启动DataNode工作线程前,DataNode需要向NameNode注册
2) 注册成功后就可以启动DataNode线程。
3) DataNode的run方法,循环里有两种选择,升级(暂时不讨论)/正常工作。
4) 正常工作offerService也是个循环,在循环里,offerService会定时向NameNode发送心跳,报告系统中Block状态的变化,报告DataNode现在管理的Block状态。
5) 发送心跳和Block状态报告时,NameNode会返回一些命令,DataNode将执行这些命令。
6) ProcessCommand 处理一下命令:
  DNA_TRANSFER:拷贝数据块到其他DataNode
  DNA_INVALIDATE:删除数据块(简单方法)
  DNA_SHUTDOWN:关闭DataNode(简单方法)
  DNA_REGISTER:DataNode重新注册(简单方法)
  DNA_FINALIZE:提交升级(简单方法)
  DNA_RECOVERBLOCK:恢复数据块
http://caibinbupt.javaeye.com/blog/287870

Hadoop 源代码分析(18)NameNode
NameNode作为HDFS中文件目录和文件分配的管理者,它保存的最重要信息
http://caibinbupt.javaeye.com/blog/288546

Hadoop 源代码分析(19)INode
http://caibinbupt.javaeye.com/blog/288547

Hadoop 源代码分析(20)HDFS使用操作日志,保存更新
http://caibinbupt.javaeye.com/blog/289759

Hadoop 源代码分析(21)分析FSEditLog.java,该类提供了NameNode操作日志和日志文件的相关方法
http://caibinbupt.javaeye.com/blog/292073

Hadoop 源代码分析(22)对租约Lease进行分析及访问控制
http://caibinbupt.javaeye.com/blog/293367

Hadoop 源代码分析(23)分析FSDirectory
http://caibinbupt.javaeye.com/blog/296936

Hadoop 源代码分析(24)FSNamesystem (1) 分析FSNamesystem的成员变量
FSNamesystem是NameNode实际记录信息的地方,保存在FSNamesystem中的数据有:
1. 文件名<->数据块列表(存放在FSImage和日志中)
2. 合法的数据块列表(上面关系的逆关系)
3. 数据块<->DataNode(只保存在内存中,根据DataNode发过来的信息动态建立)
4. DataNode上保存的数据块(上面关系的逆关系)
5. 最近发送过心跳信息的DataNode(LRU)
http://caibinbupt.javaeye.com/blog/297800

Hadoop 源代码分析(25)FSNamesystem (2) NameNode 上线程的定义及SafeMode相关信息
1. NameNode上的线程,分别对应DataNode心跳检查,租约检查,安全模式检查和数据块复制,我们会在后面介绍这些线程对应的功能。
Daemon hbthread = null;   // HeartbeatMonitor thread
Daemon lmthread = null;   // LeaseMonitor thread
Daemon smmthread = null;  // SafeModeMonitor thread
Daemon replthread = null;  // Replication thread
2. 安全模式是这样一种状态,系统处于这个状态时,不接受任何对名字空间的修改,同时也不会对数据块进行复制或删除数据块。
3. 系统启动以后,DataNode会报告目前它拥有的数据块的信息,当系统接收到的Block信息到达一定门槛,同时每个Block都有dfs.replication.min个副本后,系统等待一段时间后就离开安全模式。
http://caibinbupt.javaeye.com/blog/297800

Hadoop 源代码分析(26)HDFS网络拓扑,Replication Target Chooser, Decommission
1. HDFS的网络拓扑(NetworkTopology,DNSToSwitchMapping)
2. HDFS Replication 选择 Target(ReplicationTargetChooser )
3. chooseTarget是ReplicationTargetChooser中最重要的方法,它通过内部的一个NetworkTopology对象,计算出一个DatanodeDescriptor数组,该数组就是选定的DataNode,同时,顺序就是最佳的数据流顺序
4. Decommission进程,例如,某节点被列入到不允许连接到NameNode的机器列表中(HostsFileReader),那么,该节点会进入Decommission状态,它上面的数据块会被复制到其它节点,复制结束后机器进入DatanodeInfo.AdminStates.DECOMMISSIONED,这台机器就可以从HDFS中撤掉。 http://caibinbupt.javaeye.com/blog/298079

Hadoop 源代码分析(27)分析NameNode.java的成员变量,然后两个类综合起来,分析它提供的接口,并配合说明接口上请求对应的处理流程。
http://caibinbupt.javaeye.com/blog/298592

Hadoop 源代码分析(28) NameNode上实现的ClientProtocol (1)
http://caibinbupt.javaeye.com/blog/299415

Hadoop 源代码分析(29) NameNode上实现的ClientProtocol (2)
http://caibinbupt.javaeye.com/blog/300045

Hadoop 源代码分析(30) NameNode上实现的ClientProtocol (3)
http://caibinbupt.javaeye.com/blog/301030
Hadoop 源代码分析(31) NameNode上实现的ClientProtocol (4)
http://caibinbupt.javaeye.com/blog/301030

Hadoop 源代码分析(32)DatanodeProtocol (1)
http://caibinbupt.javaeye.com/blog/301579

Hadoop 源代码分析(33)DatanodeProtocol (2)
http://caibinbupt.javaeye.com/blog/304604

Hadoop 源代码分析(34)DatanodeProtocol (3)
http://caibinbupt.javaeye.com/blog/305362

Hadoop 源代码分析(35)NameNode上还有一系列的线程,不断检查系统的状态
http://caibinbupt.javaeye.com/blog/306857

Hadoop 源代码分析(36)Secondary NameNode & NamenodeProtocol
http://caibinbupt.javaeye.com/blog/309224

Hadoop 源代码分析(37)Secondary NameNode Process
http://caibinbupt.javaeye.com/blog/314760
Hadoop 源代码分析(38)DFSClient (1)
http://caibinbupt.javaeye.com/blog/318046

Hadoop 源代码分析(39)DFSClient (2)
http://caibinbupt.javaeye.com/blog/318607

Hadoop 源代码分析(40)DFSClient (3)
http://caibinbupt.javaeye.com/blog/318813

Hadoop 源代码分析(41)DFSClient (4)
http://caibinbupt.javaeye.com/blog/318916
分享到:
评论

相关推荐

    elasticsearch与hadoop比较

    与之相比,Hadoop在处理分布式数据存储时,通过主备NameNode的设计确保了高可用性,即使主NameNode出现故障,也可以迅速切换到备用的NameNode,从而确保数据的一致性和系统的稳定性。 在数据处理能力方面,Elastic...

    基于Hadoop的视频内容分析

    基于Hadoop的视频内容分析 云计算的发展现状和Hadoop开源云计算框架是当今热门话题,作为第三次IT浪潮,云计算带来了生活、生产方式和商业模式的根本性变革。云计算具有分布式海量存储、资源配置可伸缩性、易于部署...

    基于Hadoop的研究及分析性能

    总的来说,Hadoop作为大数据处理的关键工具,其工作原理、性能分析以及通过DistributedCache的优化策略,都是理解和优化大数据环境下的计算性能的重要方面。通过对Hadoop深入研究,我们可以更好地应对大数据带来的...

    hadoop-2.7.2.tar.gz

    Hadoop 2.7.2在大数据处理领域具有广泛的适用性,无论是数据分析、机器学习还是数据仓库,都能找到它的身影。通过对Hadoop的深入理解和熟练使用,开发者和数据工程师可以构建出强大的大数据解决方案,以应对不断增长...

    hadoop-3.1.4.tar.gz

    Hadoop广泛应用于数据分析、日志处理、推荐系统、机器学习等领域。在使用过程中,应遵循以下最佳实践: - 数据本地化:尽可能将数据存储在执行计算的节点上,减少网络传输。 - 容错设计:利用Hadoop的容错机制,确保...

    细细品味Hadoop_Hadoop集群(第5期)_Hadoop安装配置

    总结来说,Hadoop是一个强大的分布式计算框架,通过HDFS和MapReduce,它可以处理和分析大量数据。理解其核心组件、集群架构以及配置步骤是成功部署和使用Hadoop的关键。在实际应用中,考虑到高可用性和故障恢复,...

    hadoop0.20.0

    11. **Hadoop 生态系统**:虽然标题和描述仅涉及 Hadoop 0.20.0,但值得注意的是,Hadoop 生态系统还包括 Pig、Hive、HBase、Spark 等工具,它们在该版本的基础上提供了数据分析、SQL 查询、实时处理等功能。...

    hadoop 2.7 64位编译版本

    这个版本,即hadoop-2.7.5-64x.tar.gz,是Hadoop 2.x系列的一个稳定版本,适用于大数据处理和分析任务。以下是关于Hadoop 2.7及其64位版本的一些关键知识点: 1. **Hadoop概述**:Hadoop是一个由Apache基金会开发的...

    hadoop集群安装脚本

    在Hadoop HA(High Availability)场景中,Zookeeper起到了关键作用,它可以确保在主NameNode故障时,能快速切换到备用NameNode,从而保证服务的连续性。 "Hadoop一键安装脚本"通常会包含以下步骤: 1. **环境准备...

    细细品味Hadoop(Hadoop安装及配置).rar_hadoop_细细品味Hadoop

    此外,为了实现高可用性,还可以配置Hadoop的HA(High Availability),包括设置备用NameNode和Zookeeper集群。 总之,理解并掌握Hadoop的安装与配置是深入学习大数据处理的基础。通过实践操作,你可以更好地领会...

    hadoop大数据生态圈工具配置与应用.pdf

    此外,还需要配置Hadoop的客户端,使它们能够正确地与主NameNode或备用NameNode交互。 **第七章 Hive** Hive是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。通过HQL...

    Hadoop集群配置文件备份

    - **版本控制**:随着集群的扩展和优化,配置文件可能会频繁变动,备份可以追踪历史版本,便于回滚或对比分析。 - **灾难恢复计划**:在灾难性事件中,备份的配置文件是重建集群的重要依据。 **3. 备份步骤** - **...

    hadoop-3.1.1-src.tar.gz

    同时,可以利用Hadoop提供的API开发自己的应用程序,如数据分析、机器学习任务等。 8. **生态与应用**: Hadoop已经形成了丰富的生态系统,包括HBase、Spark、Hive等项目。它们与Hadoop紧密集成,共同构建大数据...

    hadoop的JAVA编程包

    通过理解和掌握上述知识点,开发者可以有效地使用Java进行Hadoop应用开发,实现大数据的高效处理和分析。这个提供的"Hadoop的JAVA编程包"可能包含了Hadoop相关的库和示例代码,对于初学者或开发者来说,是一个很好的...

    Win10编译好的hadoop2.7.6

    6. Pig、Hive和Spark等工具:这些工具可以与Hadoop集成,用于数据分析和处理,如Pig的脚本语言简化MapReduce编程,Hive提供SQL-like查询,Spark则提供了更快速的数据处理框架。 下载并使用这个Win10编译好的hadoop...

    Hadoop HA.pdf

    1. 大数据处理:Hadoop HA可以用于大数据处理场景,例如数据分析、数据挖掘等。 2. 云计算:Hadoop HA可以用于云计算场景,例如云存储、云计算等。 3. 分布式系统:Hadoop HA可以用于分布式系统场景,例如分布式存储...

    hadoop+ha+hive+mapreduce

    因此,Hadoop HA引入了两个NameNode,一个处于活动状态(Active),另一个处于备用状态(Standby)。通过心跳检测和Zookeeper协调,当主NameNode失效时,备NameNode能够快速接管,确保服务不间断。同时,DataNode会...

    通用大数据存储和分析处理平台-Hadoop.docx

    【通用大数据存储与分析处理平台-Hadoop】 Hadoop是一个开源的分布式计算框架,由Apache基金会开发,主要用于处理和存储大规模数据。它最初的设计目的是构建搜索引擎的网页索引,但随着时间的发展,Hadoop已经成为...

    hadoop的独立模式、伪分布模式、完全分布式、HA配置文件

    在HA模式下,通常有两台NameNode,一台处于活动状态,另一台处于备用状态。配置HA涉及到`hdfs-site.xml`中的`dfs.nameservice.id`、`dfs.ha.namenodes`、`dfs.namenode.rpc-address`、`dfs.namenode.http-address`等...

    hadoop-3.1.0.zip

    Hadoop广泛应用于互联网公司的日志分析、推荐系统、广告定向、社交网络分析、基因组学研究、气象预测等领域。 6. **Hadoop 3.1.0的新特性** - **YARN优化**:增强了资源调度的效率和公平性,提升了整体性能。 - ...

Global site tag (gtag.js) - Google Analytics