Hadoop源码
文章平均质量分 62
Hapdoopd的二次开发
Rico-Coding
资本要靠自己积累 技术需要自己磨炼
展开
-
Job的资源调度
在一个spark作业内部,多个并行的job是可以同时运行的。对于job,就是一个spark action操作触发的计算单元。spark的调度器是完全线程安全的,而且支持一个spark application来服务多个网络请求,以及并发执行多个job。默认情况下,spark的调度会使用FIFO的方式来调度多个job。每个job都会被划分为多个stage,而且第一个job会对所有可用的资源获取优先使用权,并且让它的stage的task去运行,然后第二个job再获取资源的使用权,以此类推。如果队列头部的jo原创 2021-01-15 16:44:53 · 435 阅读 · 0 评论 -
(十)设计模式简介
单例模式(饱汉模式,饿汉模式)工厂模式(简单工厂,模板工厂,抽象工厂)指令模式装饰者模式构建者模式组合设计模式原创 2021-01-10 16:06:04 · 73 阅读 · 0 评论 -
(九)性能提升
文章目录前言DemoHDFS锁读写锁互斥解决读锁扩展延伸前言提升点:元数据记录,修改了一个小地方,做性能提升;读写锁高频竞争,有个地方由这样一个问题,把代码做一次调整;在开发过程中,遇到过上面设计模式;Demo没错又是这个核心的代码** * 管理元数据 * 磁盘 * @author Administrator * * 这段代码我是模仿hadoop的源码的写的,大家一定要掌握 * 后面我们要修改这段代码 * 其实我现在写的这段代码跟hadoop的源码的相似有90%的相似原创 2021-01-10 15:51:51 · 288 阅读 · 0 评论 -
(八)二次开发
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言第二个问题Bug分析前言源码内容的总结1) namenode启动的流程2) Datanode的启动流程(初始化,注册,心跳)3) 元数据的管理 双缓冲机制 standBy Namenode从journalnode同步元数据 standBy Namenode合并元数据,替换active namenode的fsImage文件4)上传文件里面有一个契约的机制创建空间申请block写文件(chun原创 2021-01-10 14:29:11 · 159 阅读 · 0 评论 -
(七)HDFS写数据之写入过程
文章目录前言Demo前言Demopublic class FileTest { public static void main(String[] args) throws IOException { //如何创建一个目录 Configuration configuration=new Configuration(); //namenode FileSystem fileSystem=FileSystem.newInstance(configuration); //TODO原创 2021-01-10 10:15:04 · 795 阅读 · 0 评论 -
(六)HDFS写流程之初始化工作
文章目录总体流程Demo总体流程Demopublic class FileTest { public static void main(String[] args) throws IOException { //如何创建一个目录 Configuration configuration=new Configuration(); //namenode FileSystem fileSystem=FileSystem.newInstance(configuration); //原创 2021-01-10 09:04:39 · 497 阅读 · 0 评论 -
(五)元数据的管理与开发
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言StandbyCheckpointerEditLogTailer到这里反思以下,它是如何读到日志文件的呢总体流程前言void logEdit(final FSEditLogOp op) { synchronized (this) { assert isOpenForWrite() : "bad state: " + state; // wait if an a原创 2021-01-09 22:52:43 · 777 阅读 · 0 评论 -
(四)元数据管理
文章目录前言Demo:流程知识补充前言接下来我们要分析:namenode是如何管理元数据。我们看源码,还是要进行场景驱动的方式。Hadoop fs -mkdir /user/soft创建了一个目录,HDFS的元数据是不是就要发生变化?这个流程重要,因为我们二次开发就是要去修改这个流程。对hadoop bug 修复,很多人都在Apache上提交了patch。很多patch其实很水:1)发生某个单词写错,提交了一个patch2)某个地方忘记打日志了。3)忘记判断控制异常 if( xx != n原创 2021-01-09 21:27:03 · 944 阅读 · 0 评论 -
(三)DataNode的剖析
文章目录总体流程DataNode初始化DataNode注册知识点铺垫与NameNode相似,为服务端,所以在main启动注册结束总结总体流程DataNode初始化DataNode注册接下来讲解的是DataNode部分:1)Datanode初始化:之前分析过jps,能看到的服务就认为是RPC的服务端。在我们平时搭建集群的过程中,我们jps是能看到DataNode服务的。所以datanode应该就是RPC的服务端。2)DataNode的注册:HDFS是一个主从式的架构。Namenode是一个原创 2021-01-09 19:18:23 · 735 阅读 · 0 评论 -
(二)NameNode剖析
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言启动Http服务创建RPCstartCommonServices前言* Namenode服务既管理了HDFS的集群的命名空间和 "inode table"。 * 一个HDFS集群里面只有一个namenode.(除了HA方案,或者是联邦) * * Namenode管理了两张比较重要的表: * 1)一张表管理了文件与block之间的关系。 * 2)另一张表管理了block文件块与 DataNode主机之间的关系原创 2021-01-09 16:08:16 · 450 阅读 · 0 评论 -
(一)Hadoop的RPC
文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言RPC:不同进程间方法的调用DataNode->去调用NameNode的方法此时DataNode和NameNode属于不同的进程一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplo原创 2021-01-09 14:31:24 · 169 阅读 · 0 评论