1.如何申请资源 1.1 如何启动AM并申请资源 1.1.1 如何启动AM val yarnClient = YarnClient.createYarnClient setupCredentials() yarnClient.init(yarnConf) yarnClient.start() // Get a new application from our RM val newApp = yarnClient.createApplication() val newAppResponse = n…
1.如何申请资源 1.1 如何启动AM并申请资源 1.1.1 如何启动AM val yarnClient = YarnClient.createYarnClient setupCredentials() yarnClient.init(yarnConf) yarnClient.start() // Get a new application from our RM val newApp = yarnClient.createApplication() val newAppResponse = n…
Hadoop源码解读系列 1.hadoop源码|common模块-configuration详解2.hadoop源码|core模块-序列化与压缩详解3.hadoop源码|core模块-远程调用与NIO详解4.hadoop源码|core模块-linux文件系统与nfs文件系统详解5.hadoop源码|core模块-hadoop文件系统详解6.hadoop源码|hdfs模块-hdfs架构和流程详解7.hadoop源码|hdfs模块-datanode实现详解8.hadoop源码|hdfs模块-name…
将Hadoop源码导入Eclipse有个最大好处就是通过 "ctrl + shift + r" 可以快速打开Hadoop源码文件. 第一步:在Eclipse新建一个Java项目,hadoop-1.0.3 第二步:将Hadoop程序src下core, hdfs, mapred, tools几个目录copy到上述新建项目的src目录 第三步:修改将Java Build Path,删除src,添加src/core, src/hdfs....几个源码目录 第四步:为Java Build Pat…
在上一篇文章中 Spark源码系列:DataFrame repartition.coalesce 对比 对DataFrame的repartition.coalesce进行了对比,在这篇文章中,将会对RDD的repartition.coalesce进行对比. RDD重新分区的手段与DataFrame类似,有repartition.coalesce两个方法 repartition def repartition(numPartitions: Int): JavaRDD[T] /** * Return…
最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二.源码项目结构概览及hdfs源码包结构简介三.NameNode介绍 第一步,搭建源码阅读环境. 把Hadoop源码包导入到开发工具,eclipse或者idea都行.这里我的环境是mac os,使用的工具是idea,Hadoop版本为2.6.5. 首先,解压缩Hadoop源码包,可以选择移动解压之后的源…
hbase源码系列(九)StoreFile存储格式    从这一章开始要讲Region Server这块的了,但是在讲Region Server这块之前得讲一下StoreFile,否则后面的不好讲下去,这块是基础,Region Sever上面的操作,大部分都是基于它来进行的. HFile概述 HFile是HBase中实际存数据的文件,为HBase提供高效快速的数据访问.它是基于Hadoop的TFile,模仿Google Bigtable 架构中的SSTable格式.文件格式如下: 文件是变长的,…
本文讨论0.98版本的hbase里v2版本.其实对于HFile能有一个大体的较深入理解是在我去查看"到底是不是一条记录不能垮block"的时候突然意识到的. 首先说一个对HFile很直观的感觉,我觉得HFile的整个设计中很重要的一点是为减少内容占用.首先写时候可以把一个个block按顺序写入,满足一个chunk写入一个元数据(包括bloomfilter),最后是一些HFile的元数据.对于HFile,我个人觉得主要把握好几个问题. block的组织 bf和block的关系 index…
前言 JDK源码解析系列文章,都是基于JDK8分析的,虽然JDK15马上要出来了,但是JDK8我还不会,我... 类图 实现了RandomAccess接口,可以随机访问 实现了Cloneable接口,可以克隆 实现了Serializable接口,可以序列化.反序列化 实现了List接口,是List的实现类之一 实现了Collection接口,是Java Collections Framework成员之一 实现了Iterable接口,可以使用for-each迭代 属性 // 序列化版本UID pr…
一.           为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通过本地库,Hadoop可以更加高效地执行某一些操作. native目录是本地库,位于hadoop-2.x.x/lib/native目录下,仅支持linux和unix操作系统. hadoop中的zlib和gzip模块会加载本地库,如果加载失败,会提示: 16/07/06 12:18:24 WARN u…