hadoop
Aponson
这个作者很懒,什么都没留下…
展开
-
【hadoop二次开发】datanode初始化之校验存储路径,并返回可用路径列表
009-hadoop二次开发-DataNode启动流程原创 2020-10-07 12:17:13 · 343 阅读 · 0 评论 -
【hadoop二次开发】对namenode的启动流程的总结
009-hadoop二次开发启动http元数据加载创建RPC守护线程工作和总体流程NameNode启动流程首先在源码文件NameNode.java中的main函数中,主要基于createNameNode方法,进入该方法后,根据参数,进行模式匹配,匹配到default,进入NameNode构造函数,会在createHAContext方法(在FSNamesystem.java源码文件中)中启动一些回调函数,比如startActiveServices()函数,开启守护线程this.nnrmthread =原创 2020-10-06 15:22:05 · 203 阅读 · 0 评论 -
【hadoop二次开发】根据汇报的数据块判断是否可以离开安全模式
008-hadoop二次开发在源码文件FSNamesystem.java执行完nnResourceChecker = new NameNodeResourceChecker(conf);立马执行checkAvailableResources(),检查可用资源是否足够:如果不够,日志打印警告信息,然后进入安全模式。然后 /** * 磁盘资源不足的情况下,任何对元数据修改所产生的日志都无法确保能够写入到磁盘, * 即新产生的edits log和fsimage都无法确保写入磁盘。所以要进入安原创 2020-10-06 14:13:18 · 289 阅读 · 0 评论 -
【hadoop二次开发】检查磁盘资源的守护线程类
007-hadoop二次开发启动NameNode的场景打开源码文件NameNode.java,找到main函数,找到createNameNode方法进入,经过模式匹配,匹配到NameNode进入, /** * 1、对namenode做参数的注册(fs.defaultFS、rpc地址等) * 2、初始化 * 3、根据初始化处理的结果,namenode进入对应的状态(active、backup、standby) * */ protected NameNode(Configur原创 2020-10-05 16:10:28 · 119 阅读 · 0 评论 -
【hadoop二次开发】NameNodeResourceChecker的构造函数
006-hadoop二次开发针对源码文件NameNode.java中startCommonServices(Configuration conf)下namesystem.startCommonServices(conf, haContext)源码文件FSNamesystem.java中startCommonServices(Configuration conf, HAContext haContext)下nnResourceChecker = new NameNodeResourceChecker(co原创 2020-10-05 15:29:29 · 131 阅读 · 0 评论 -
【hadoop二次开发】RPC的创建流程
005-hadoop二次开发在源码NameNode.java文件第716行创建RPC:/** * NameNodeRpcServer里面有两个主要的RPC服务: * 1):clientRpcServer , 主要管理的协议是hdfs的客户端(用户)去操作HDFS的方法 * 2):ServletRpcServer , 服务之间互相进行的方法的调用(注册、心跳等) * */rpcServer = createRpcServer(conf);怎么创建RPC的呢?进入createRpcServer原创 2020-10-05 12:46:11 · 386 阅读 · 0 评论 -
【hadoop二次开发】源码中namenode是如何启动http服务器对外提供服务的
004-hadoop二次开发在NameNode.java源码文件中: /** * 1、对namenode做参数的注册(fs.defaultFS、rpc地址等) * 2、初始化 * 3、根据初始化处理的结果,namenode进入对应的状态(active、backup、standby) * */ protected NameNode(Configuration conf, NamenodeRole role) throws IOException { t原创 2020-09-20 13:20:20 · 548 阅读 · 0 评论 -
【hadoop二次开发】通过源码NameNode类的mian函数进行启动namenode
003-hadoop二次开发main函数main函数一旦调用org.apache.hadoop.hdfs.server.namenode.NameNode,那么在该类下一定有个main函数。启动NameNode需要提交参数,首先对参数要进行合法校验,if (DFSUtil.parseHelpArgument(argv, NameNode.USAGE, System.out, true)) { System.out.println("####参数校验#####"); System.exit(0原创 2020-09-20 09:28:19 · 257 阅读 · 0 评论 -
【hadoop二次开发】查看NameNode的启动脚本
002-hadoop二次开发NameNode是什么,有哪些职责NameNode如何启动的(通过脚本)NameNode是什么,有哪些职责首先namenode是一个服务中心,管理文件系统命名空间的,比如当前文件名叫什么,以及管理的元数据,blockID,block大小,块池列表,在哪些机器上。在WEB-UI界面50070端口,Utilities下Browse Directory查看hdfs文件信息。当在客户端输入hadoop fs -ls /命令后,通过rpc发送给namenode,执行操作,返回结果到原创 2020-09-19 12:08:07 · 434 阅读 · 0 评论 -
【hadoop二次开发】模仿源码,手写一个RPC过程调用
001-hadoop二次开发Hadoop RPC创建一个demo工程(hadoopProject)rpc-server工程rpc-client工程RPC总结Hadoop RPCRPC(Remote Procedure Call)-远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议(比如TCP\UDP)。代码实现添加pom依赖<dependency> <groupId>org.apache.hadoop</groupId>原创 2020-09-18 22:17:05 · 308 阅读 · 0 评论