- 博客(14)
- 收藏
- 关注
原创 Hadoop源码分析(十三)
2021SC@SDUSCHadoop RPC实现ClientProtocol类,该类定义了接口协议,在该接口中定义了两个方法:echo和add。而在Hadoop中所有的协议接口都需要实现VersionedProtocol接口。package com.cszjo.hadoop.rpc;import org.apache.hadoop.ipc.VersionedProtocol;import java.io.IOException;/** * RPC Protocol 类 * Cre
2021-12-28 14:05:54
907
原创 Hadoop源码分析(十二)
2021SC@SDUSC1.FileSystem.open()使用Java IO读取本地文件类似,读取HDFS文件是创建一个文件输入流,在Hadoop中使用FileSystem.open()方法来创建输入流。 public static void readFile(String filePath) throws IOException{ FileSystem fs = getFileSystem(filePath); InputStream in=null
2021-12-25 14:00:39
776
原创 Hadoop源码分析(十一)
private DFSOutputStream(String src, long blockSize, Progressable progress, int bytesPerChecksum) throws IOException DFSOutputStream(String src, FsPermission masked, boolean overwrite, short replication, long blockS
2021-12-20 00:31:04
209
原创 Hadoop源码分析(十)
2021SC@SDUSC1.NameNode上的线程 Daemon hbthread = null; // HeartbeatMonitor thread public Daemon lmthread = null; // LeaseMonitor thread Daemon smmthread = null; // SafeModeMonitor thread public Daemon replthread = null; // Replication thread private D
2021-12-07 10:48:50
1387
原创 Hadoop源码分析(九)
2021SC@SDUSCDataNodeProtocol public DatanodeRegistration register(DatanodeRegistration nodeReg ) throws IOException用于DataNode 向 NameNode 登记。输入和输出参数都是 DatanodeRegistration在NameNode里,先是检查该 DataNode 是否能接入到NameNode,到准备应答,更新请求的 DataNodeID。从DataNode.
2021-12-06 15:16:46
1194
原创 Hadoop源码分析(八)
2021SC@SDUSC1.NameNode中的文件操作public void abandonBlock(Block b, String src, String holder ) throws IOException;abandonBlock 用于放弃一个数据块。当客户端通过类似addBlock方法获取LocatedBlock 后,可以打开到一个 block 的输出流,由于从DataNode 出错到NameNode 发现这个信息,需要有一段时间,导致打开输出流时可能出错,这时客户端可以向 .
2021-11-28 21:39:18
1274
原创 Hadoop源码分析(七)
2021SC@SDUSC一.NameNode.java 先来分析NameNode.java的成员变量在之前的文章中已经介绍了,NameNode 实现了接口 ClientProtocol,DatanodeProtocol 和 NamenodeProtocol,分别提供给客户端/DataNode/从 NameNode 访问。1.指向 FSNamesystem 对象 public FSNamesystem namesystem;2.NameNode 的 RPC 服务器实例
2021-11-23 01:15:34
4397
原创 Hadoop源码分析(六)
2021SC@SDUSC本次代码分析主要针对FSNamesystem里的代码进行分析。FSNamesystem成员变量: private boolean isPermissionEnabled;是否打开权限检查,可以通过配置项 dfs.permissions 来设置。 private UserGroupInformation fsOwner;本地文件的用户文件属主和文件组。 private String supergroup;对应配置项 dfs.perm...
2021-11-14 13:18:24
1280
原创 Hadoop源码分析(五)
2021SC@SDUSC1.DataXceiverOP_READ_METADATA :读数据块元文件 OP_REPLACE_BLOCK :替换一个数据块 OP_COPY_BLOCK :拷贝一个数据块OP_BLOCK_CHECKSUM :读数据块检验码 替换一个数据块是系统平衡操作的一部分,用于接收一个数据块。它和普通的数据块写的差别是,它只发生在两个节点上,一个写,一个读,而不需要建立数据链。1. blockReceiver = new BlockReceiver(
2021-11-08 22:27:47
1860
1
原创 Hadoop源码分析(四)
2021SC@SDUSC1.Hadoop中的NameNode与DataNodeHadoop中的HDFS系统包括一个NameNode和多个DataNode。NameNode为管理者,主要负责管理HDFS中的文件系统
2021-10-31 21:33:51
541
原创 Hadoop源码分析(三)
2021SC@SDUSC1.Hadoop的Server 在Java中,Server是一个抽象类,在Hadoop中,Server只是提供了一个框架,而具体实现过程,需要这个框架中的具体类来实现。而具体类主要使用的Call方法,接下来就对Call方法进行分析。public abstract Writable call(Writable param, long receiveTime) throws IOException;我们先来分析 Server.Call,和 Client.Call 类似.
2021-10-25 13:11:35
677
原创 Hadoop源码分析(二)
1.Hadoop配置信息处理1.1Windows 操作系统的配置文件Windows 系统广泛使用一种特殊化的 ASCII 文件(以“ini”为文件扩展名)作为它的主要配置文件标准。INI文件被称为初始化文件(Initialization File)或概要文件(profile)。应用程序可以拥有自己的配置文件,存储应用的设置信息,也可以访问 Windows 的基本系统配置文件 win.ini 中存储的配置信息。INI 文件将配置信息分为“节”,节标题放在方括号中。下面是一段INI文件的示例:.
2021-10-17 11:27:19
243
原创 Hadoop源码分析(一)
2021SC@SDUSC本次代码分析将从Hadoop中的Writable,Hadoop中的压缩读取数据(API)以及Hadoop中类Client的相关作用及代码进行分析。由于Hadoop的Cloud Storage与MapReduce都有通信的需求,需要对通信的对象序列化。而Hadoop没有采用Java的序列化,而是拥有自己的系统。1.Hadoop中的Writable而在org.apache.hadoop.io中,hadoop使用自己的序列化格式Writables接口,定义了许多序列化对象,
2021-10-09 12:19:31
333
原创 Hadoop源码分析综述
2021SC@SDUSC众所周知,hadoop的源码非常庞大,想要进行仔细的代码分析是件困难的事。我们可以先从简单的地方下手。在接下来几个月的时间里,我们小组将对Hadoop的源码进行分析,分配给我的任务是对Hadoop中的云存储(cloud storage)的代码架构和Hadoop Common以及yarn中的部分代码进行细致分析。在接下来的代码分析中,我将从实际出发,参考《hadoop权威指南》和《hadoop技术内幕》等书籍的专业指导进行分析。我们可以从hadoop的源代码中定位相关的类和函数
2021-09-29 17:50:42
128
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人