Hadoop
zy19982004
这个作者很懒,什么都没留下…
展开
-
Hadoop学习四十四:某项目技术小结概述
一.对源代码的改造 改造MultipleInputs:能够做到HBase文件或者HDFS文件的混合输入改造JobControl和ControlledJob:能够做到一个Job运行完后,先执行扩展类,再运行下一个Job 改造HFileOutputFormat和PutSortReducer:有一种业务场景是新来的一批数据里包含了少量要删除的数据。改造后配合Mapper对这些删除数据的标...2014-12-15 15:49:52 · 250 阅读 · 0 评论 -
Hadoop学习三十九:HBase与MapReduce集成
一.概述 HBase与MapReduce集成时,有以下三种情形HBase作为数据流向。HBase作为数据源。HBase作为数据源和数据流向。 阅读本文前,最好先了解http://zy19982004.iteye.com/blog/2068112 二.HBase作为数据流向 HBase作为数据流向时,如从Hdfs里向HBase...2014-05-19 14:09:39 · 249 阅读 · 0 评论 -
Hadoop学习三十八:MapReduce job.setNumReduceTasks(0)思考
一.概述 在http://zy19982004.iteye.com/blog/2037549的最后曾经提到过,这里再详细探讨一下。 二.job.setNumReduceTasks(0)唯一影响的是map结果的输出方式 当job.setNumReduceTasks(0)时,即没有reduce阶段,此时唯一影响的就是map结果的输出方式如果有reduce...2014-05-19 11:01:16 · 450 阅读 · 0 评论 -
Hadoop学习二十九:Hadoop-hdfs NameNode源码 成员变量
一. NameNode概述 * The NameNode controls two critical tables: * 1) filename->blocksequence (namespace) * 2) block->machinelist ("inodes") * * The first table is stored on disk and is very ...2013-08-03 15:39:42 · 139 阅读 · 0 评论 -
Hadoop学习二十八:Hadoop-hdfs FSNamesystem源码 成员变量
一. FSNamesystem概述 FSNamesystem为DataNode做簿记工作,直接点就是到DataNode的请求都是经过FSNamesystem运算后的。FSNamesystem管理着几个主要的数据结构。文件名 -> 数据块(存放在FSImage和日志中)合法的数据块列表(上面关系的逆关系)数据块 -> DataNode(只保存在内存中,根据Da...2013-08-03 14:55:32 · 280 阅读 · 0 评论 -
Hadoop学习二十七:Hadoop-Hdfs 权限相关 源码
一.Linux文件/目录权限 http://hi.baidu.com/skyforum/item/9946ef57b371789608be1747,不了解的需要做一个基本的了解。 二. FsActionFsAction对应着文件/目录的操作权限。rwx。FsAction犀利之处在于枚举类型里的每一个权限与二进制的对应。有了上面的对应,我们可以组合出所有的权限...原创 2013-07-10 23:12:45 · 209 阅读 · 0 评论 -
Hadoop学习二十六:Hadoop-Hdfs Lease源码
一. Lease A Lease governs all the locks held by a single client. * For each client there's a corresponding lease, whose * timestamp is updated when the client periodically * checks in. If t...原创 2013-07-09 22:00:52 · 199 阅读 · 0 评论 -
Hadoop学习二十五:Hadoop-Hdfs FSImage源码
一. FSImage作用加载硬盘镜像文件fsimage到内存。加载硬盘日志文件edits到内存。这个本来是类FSEditlog的事情,但是是由FSImage负责调用。保存内存中文件层次结构到硬盘文件fsimage中。保存内存中操作日志到硬盘文件edits上。按照对应关系,觉得是应该有这么一步吧。但遗憾的告诉你,这一步在整个文件系统中不存在。也就是FSImage可以分为内存和硬...原创 2013-07-04 22:54:13 · 217 阅读 · 0 评论 -
Hadoop学习二十四:Hadoop-Hdfs FSEditLog 源码
一. FSEditLog类图 二. FSEditLogFSEditLog提供了对editlog文件的操作方法。简单的类,方法一个个看。editStreams保存着一个fsimage下所有的editlog文件对应的输出流EditLogOutputStream。三. FSEditLog方法void open():Create empty edit log ...原创 2013-07-03 22:46:06 · 229 阅读 · 0 评论 -
Hadoop学习二十三:Hadoop-Hdfs FSDirectory 源码
一. FSDirectory 上文Hadoop学习二十二:Hadoop-Hdfs INode源码讲到INode是文件层次结构的反应。那文件层次结构由谁去维护,就是由FSDirectory维护。我把从客户端发起一个操作到最终完成这一操作所经过的类,依次划分为外层-底层。那FSNamesystem算的上底层的东西,FSDirectory就是更底层的东西。所有会导致文件层次结构变化的操...原创 2013-07-03 19:47:00 · 213 阅读 · 0 评论 -
Hadoop学习四十:Phoenix二级索引浅谈
一.概述Hadoop2.2.0 Hbase0.96.1.1 Phoenix-2.2.0-SNAPSHOTPhoenix官网上提供了三个与Hbase兼容的版本,分别为Phoenix2.X-Hbase0.94.X ,Phoenix3.X-Hbase0.94.X,Phoenix4.X-Hbase0.98.1+,没有与Hbase0.96兼容的版本。幸运的是git上有Phoenix Hb...2014-06-30 09:34:54 · 443 阅读 · 0 评论 -
Hadoop学习四十一:HBase基础
一.概述 再次学习HBase实战和HBase权威指南时,对HBase了解又深了许多。本文列出一些值得关注的点。 二.HBase物理和逻辑存储结构 user表包含两个列族info activity,为此表预分区[1,3) [3,正无穷),此时user表在HBase里的物理和逻辑存储结构如上图。一个user表的数据存储在两个region上,这...2014-07-02 15:53:33 · 219 阅读 · 0 评论 -
Hadoop学习四十三:MapReduce的二次排序
一.概述 关于二次排序的文章,网上很多,比喻http://www.cnblogs.com/xuxm2007/archive/2011/09/03/2165805.html就写的不错。在此文基础上补充几点。 二.job.setPartitionerClass在什么地方被用到 mapper里每一次write,都会调用到collector.collect(...2014-11-02 19:10:08 · 307 阅读 · 0 评论 -
Hadoop学习三十六:使用BulkLoad时Bulk load operation did not find any files
一.错误 使用BulkLoad向Hbase导入数据时出现了错误2014-04-04 15:39:08,521 WARN org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles - Bulk load operation did not find any files to load in directory hdfs://...2014-04-05 20:24:14 · 1063 阅读 · 0 评论 -
Hadoop学习三十五:Hadoop-MapReduce MapTask and ReduceTask
一.上文 http://zy19982004.iteye.com/blog/2037549从整体上描述了Job执行的过程,大致分为三步准备数据map reduce清理 其中最主要的当然是map reduce的过程,map由MapTask主导完成,reduce由ReduceTask主导完成。先看看官方给的一个图 二.MapTask ...2014-03-28 11:27:18 · 152 阅读 · 0 评论 -
Hadoop学习三十四:Hadoop-MapReduce Job本地运行流程
一. 版本环境 以前工作的过程中,陆陆续续看过一些Hadoop1.0 MapReduce的源码,但没有形成体系。现在再次来看,顺便记录。此次学习版本的是Hadoop2.2.0 MapReduce。环境为直接在Win7下Local模式调试。MapReduce。 二. Job提交流程 从Job waitForCompletion开始1 Job submit1...2014-03-27 15:40:38 · 350 阅读 · 0 评论 -
Hadoop学习三十三:Hadoop-HBase Bulk Load使用翻译
一. 地址 http://hbase.apache.org/book.html#arch.bulk.load 写道9.8. Bulk Loading 9.8.1. Overview HBase includes several methods of loading data into tables. The most straightforward method...2014-03-18 14:20:39 · 182 阅读 · 0 评论 -
Hadoop学习三十二:Win7下无法提交MapReduce Job到集群环境
一. 对hadoop eclipse plugin认识不足 http://zy19982004.iteye.com/blog/2024467曾经说到我最hadoop eclipse plugin作用的认识。但事实上我犯了一个错误,Win7 Eclipse里的MyWordCount程序一直在本地运行,没有提交到集群环境上运行(查看192.168.1.200:50030)没有这个Jo...2014-03-14 15:27:40 · 333 阅读 · 0 评论 -
Hadoop学习三十一:Win7下HBase与MapReduce集成时XXX.jar is not a valid DFS filename
一. 代码 Hbase In Action(HBase实战)和Hbase:The Definitive Guide(HBase权威指南)两本书中,有很多入门级的代码,可以选择自己感兴趣的check out。地址分别为https://github.com/HBaseinaction https://github.com/larsgeorge/hbase-book。在Win7下运...2014-03-12 09:48:04 · 1392 阅读 · 0 评论 -
Hadoop学习三十:Win7 Eclipse调试Centos Hadoop2.2-Mapreduce
一. 自己搭建开发环境 今天自己搭建了一套Centos5.3 + Hadoop2.2 + Hbase0.96.1.1的开发环境,Win7 Eclipse调试MapReduce成功。可能是版本比较高的原因,出了问题,网上找不到完整解决方案,只能靠自己。 二. Hadoop安装 这个就不啰嗦了,网上大把文章。我下载的是hadoop-2.2.0.tar.gz。...2014-03-01 20:01:58 · 171 阅读 · 0 评论 -
Hadoop学习四十二:HBase 过滤器
一.概述客户端创建包含过滤器Filter的Scan。Scan通过RPC被发送给RegionServer,在服务器端执行过滤操作。Scan的作用域是region,所以一个RegionServer有多个region的话,Scan将被发送到每个region。 二.Filter工作流程 你必须知道的是,HBase里的一行数据对应一或者多个KeyValue。再...2014-07-04 09:49:56 · 327 阅读 · 0 评论 -
Hadoop学习二十二:Hadoop-Hdfs INode源码
一. INode类图 二. INode We keep an in-memory representation of the file/block hierarchy.This is a base INode class containing common fields for file and directory inodes.INode是文件层次结构的反应。IN...原创 2013-06-22 09:52:58 · 326 阅读 · 0 评论 -
Hadoop学习十八:Hadoop-Hdfs DataXceiverServer源码其它操作及总结
一. 其它操作 public static final byte OP_REPLACE_BLOCK = (byte) 83; public static final byte OP_COPY_BLOCK = (byte) 84; public static final byte OP_BLOCK_CHECKSUM = (byte) 85; 二.REPLACE_BLOC...2013-06-13 21:55:16 · 168 阅读 · 0 评论 -
Hadoop学习九:Hadoop-hdfs RPC源码 Server
一.Server类图 二.详细描述Call:server端的Call对象,对应着client的一个Call对象,两者id相同。同client Call一样,server Call封装了每次方法调用的参数信息和调用结果。 //server端的Call对象,对应着client的一个Call对象,两者id相同 private static class Call { ...原创 2013-05-24 16:22:54 · 143 阅读 · 0 评论 -
Hadoop学习八:Hadoop-Hdfs RPC源码 Client
一.Client类图 二.详细描述 ConnectionId:This class holds the address and the user ticket. The client connections to servers are uniquely identified by <remoteAddress, protocol, ticket>。一个connect...原创 2013-05-23 19:49:32 · 138 阅读 · 0 评论 -
Hadoop学习七:Hadoop-Hdfs源码 conf包
一.conf包下四个类 二.详细描述 Configurable接口:Something that may be configured with a {@link Configuration}.,很绕口,简单理解为Hdfs系统配置文件的接口。Configured:Base class for things that may be configured with a {@li...原创 2013-05-22 22:21:04 · 206 阅读 · 0 评论 -
Hadoop学习六:Hadoop-Hdfs源码 classification包
一.org.apache.hadoop.classification.* 二.解释 InterfaceAudience类包含三个注解类,用来说明被注解类的使用范围。InterfaceAudience.Public:所有工程可以使用被注解类。InterfaceAudience.LimitedPrivate:指定的某些工程可以使用被注解类。For example, "C...2013-05-20 18:07:01 · 294 阅读 · 0 评论 -
Hadoop学习五:Hadoop-Hdfs DataNode
一.数据块HDFS默认数据块大小64M。文件大于64M,将被分为若干份64M+其它M存储;文件小于64M,并不会占用整个64M大小,对于小文件,HDFS提供了几种解决方案:Hadoop Archive,Sequence file和CombineFileInputFormat,后面看源码时详解。 二.DataNode 数据节点是真正存储数据的地方。周期性向Nam...2013-05-17 14:19:39 · 150 阅读 · 0 评论 -
Hadoop学习四:Hadoop-Hdfs NameNode
一.NameNode概述 NameNode存放了所有文件和文件夹的元数据信息内存中:在系统启动时,会把fsimage和editlog记录的元数据信息加装到内存中;在系统启动时,NameNode收集DataNode心跳,在内存中形成file->blocks的对应关系。硬盘上:操作日志以fsimage和editlog的形式持久化在硬盘上。NameNode分类Nam...2013-05-16 23:14:16 · 161 阅读 · 0 评论 -
Hadoop学习三:Hadoop-Hdfs物理文件夹
一.NameNode物理文件夹 二.DataNode物理文件夹2013-05-15 21:56:39 · 172 阅读 · 0 评论 -
Hadoop学习二:Hadoop来历以及Doug Cutting
一.Hadoop来历 2004年12月。Google发表了MapReduce论文,MapReduce允许跨服务器集群,运行超大规模并行计算。Doug Cutting意识到可以用MapReduce来解决Lucene的扩展问题。Google发表了GFS论文。Doug Cutting根据GFS和MapReduce的思想创建了开源Hadoop框架。2006年1月,Doug Cutti...2013-05-08 13:54:18 · 267 阅读 · 0 评论 -
Hadoop学习一:Hadoop版本
一.Hadoop社区版和发行版社区版:我们把Apache社区一直开发的Hadoop称为社区版。简单的说就是Apache Hadoop http://hadoop.apache.org/发行版:基于Apache Hadoop的基础上进行商业改造的解决方案,包含一系列定制的管理工具和软件。二.Hadoop社区版版本号 一直以来,Hadoop的版本号一直困扰着广大Ha...2013-05-07 22:48:31 · 167 阅读 · 0 评论 -
Hadoop学习十:Hadoop-Hdfs RPC源码 RPC
一.RPC类图二.详细描述Server:继承org.apache.hadoop.ipc.Server(Hadoop学习九:Hadoop-hdfs RPC源码 Server)。我们称之为RPC Server。 /** An RPC Server. */ public static class Server extends org.apache.hadoop.ipc.Se...2013-05-24 21:16:42 · 107 阅读 · 0 评论 -
Hadoop学习十一:Hadoop-Hdfs RPC总结
一.本文初衷 我曾经写过一篇文章容器学习一:HashMap源码分析,后来有网友对我说,全文不介绍HashMap怎么使用,只介绍了源码,有点孤立。到昨天又有网友对我说,看了你的分析RPC的三篇文章,并没有理解RPC到底是个什么玩意,给我留下的影响只有Java反射。这个就是我写本文的原因:源码是进去,本文再跳出来做一个全局的描述。 二.RPC概念 RPC(Remote P...2013-05-25 11:09:39 · 186 阅读 · 0 评论 -
Hadoop学习十七:Hadoop-Hdfs DataXceiverServer源码写数据
一.写数据 DataXceiver的writeBlock方法用于客户端(Client或DataNode)的写数据请求。 二.单一流程 读取客户端发送过来的消息(下文称之为“请求参数”)blockId:要写入块的block id。generationStamp:要写入块的block generationStamp。pipelineSize:num ...2013-06-11 18:52:36 · 282 阅读 · 0 评论 -
Hadoop学习二十一:Hadoop-Hdfs DataNode 源码
一. DataNode类图 二. DateNode属性说明 DatanodeProtocol namenode:RPC代理类。RPC.getProxy(nameNodeAddress)得到远程NameNode代理类。后续的versionRequest(),register(),sendHeartbeat(),blockReceived(),blockReport()都是na...原创 2013-06-20 22:48:11 · 184 阅读 · 0 评论 -
Hadoop学习二十:Hadoop-Hdfs 通信机制VersionedProtocol接口方法
一. VersionedProtocol//使用Hadoop RPC机制的所有协议的超类 //所有子类所以自己的协议号static final long versionIDpublic interface VersionedProtocol { /** * 返回与指定协议protocol相关的协议版本 * @param protocol 协议接口的类...原创 2013-06-16 00:22:56 · 228 阅读 · 0 评论 -
Hadoop学习十九:Hadoop-Hdfs 通信机制VersionedProtocol工作原理
一.RPC在http://zy19982004.iteye.com/blog/1875969里曾经提到VersionedProtocol v = RPC.getProxy(...);得到一个Java代理类。实际上RPC就是建立在VersionedProtocol的基础上的。二.VersionedProtocol类图 三.工作原理 以Client与NameN...原创 2013-06-16 00:21:05 · 238 阅读 · 0 评论 -
Hadoop学习十六:Hadoop-Hdfs DataXceiverServer源码读数据
一.DataXceiverServer入口 Hadoop学习十五:Hadoop-Hdfs DataXceiverServer源码概述提到DataXceiverServer每接收到一个请求,就创建一个DataXceiver来处理该请求。DataXceiver首先读取请求版本号并检验;然后再读取一个字节的操作码,根据操作码转入相关的子程序进行处理。本文介绍读数据。...2013-06-03 21:09:34 · 135 阅读 · 0 评论 -
Hadoop学习十五:Hadoop-Hdfs DataXceiverServer源码概述
一.DataXceiverServer类图 二.DataXceiverServer Server used for receiving/sending a block of data.This is created to listen for requests from clients or other DataNodes. This small server does n...2013-06-02 09:29:32 · 152 阅读 · 0 评论