2012年7月4日
摘要:
DataNode节点中的存储路径会分别存储不同的文件数据块。HDFS对节点存储路径的实现被抽象成了一个StorageDirectory类。 StorageDirectory文件 StorageDirectory类主要包含三个属性: File root; // 节点存储目录所在本地文件系统的目录 dfs.data.dir中配置的一个本地路径FileLock lock; // 排它锁,同步控制节点对该存储目录的操作 in_use.lockStorageDirType dirType; // namenode 或者datanoderoot目录下的文件结构在上一篇中已经介绍过了.不过datanode和
阅读全文
posted @ 2012-07-04 19:51
阿笨猫
阅读(1413)
推荐(0)
摘要:
datanode的存储大体上可以分为两部分: 1.与Storage相关的类从宏观上刻画了每个存储目录的组织结构,管理由HDFS属性dfs.data.dir指定的目录,如current、previous、detach、tmp、storage等目录和文件,并定义了对整个存储的相关操作; 2.与Dataset相关的类描述了块文件及其元数据文件的组织方式,如current目录中的文件组织结构,以及对块文件的相关操作。 因为namenode也会用到Storage相关,而namenode并不存储块文件,因而将存储分成这两部分。 Storage类相关 先从一个datanode的配置看起,datanod...
阅读全文
posted @ 2012-07-04 18:38
阿笨猫
阅读(1132)
推荐(0)
2012年6月21日
摘要:
1.client运行的流程1)创建代理对象; 2)代理对象调用相应方法(invoke()); 3)invoke调用client对象的call方法,向服务器发送请求(参数、方法); 4)再等待call方法的完成; 5)返回请求结果。2.client主要的内部类主要的几个类说明: 1. Call,表示一次rpc的调用请求2. Connection,表示一个client与server之间的连接,一个连接一个线程启动3. ConnectionId:连接的标记(包括server地址,协议,其他一些连接的配置项信息)4. ParallelCall:实现并行调用的请求5. ParallelResults:并
阅读全文
posted @ 2012-06-21 19:40
阿笨猫
阅读(2720)
推荐(0)
摘要:
1.前言Hadoop的RPC主要是通过Java的动态代理(Dynamic Proxy)与反射(Reflect)实现,源代码在org.apache.hadoop.ipc下,有以下几个主要类:Client:RPC服务的客户端RPC:实现了一个简单的RPC模型Server:服务端的抽象类RPC.Server:服务端的具体类VersionedProtocol:所有的使用RPC服务的类都要实现该接口,在创建代理时,用来判断代理对象是否创建正确。2.Hadoop RPC简单过程简单来说,Hadoop RPC = 动态代理 + 定制好的二进制流。如果不关注细节,从用户的角度来看,它的结构大致像下图 远程的.
阅读全文
posted @ 2012-06-21 14:38
阿笨猫
阅读(1902)
推荐(0)
摘要:
动态代理http://langyu.iteye.com/blog/410071java niohttp://weixiaolu.iteye.com/blog/1479656http://blog.csdn.net/historyasamirror/article/details/6159248#
阅读全文
posted @ 2012-06-21 10:38
阿笨猫
阅读(744)
推荐(1)
2012年6月15日
摘要:
ps: 在map和reduce的过程中,可以通过设置Context.setStatus()来随时设置状态,这个底层也是使用reporter来设置的 1.在0.20.x版本中使用counter很简单,直接定义即可,如无此counter,hadoop会自动添加此counter. Counter ct = context.getCounter("INPUT_WORDS", "count"); ct.increment(1); 2.在0.19.x版本中,需要定义enum enum MyCounter {INPUT_WORDS }; reporter.incrCo
阅读全文
posted @ 2012-06-15 17:55
阿笨猫
阅读(7571)
推荐(0)
摘要:
hadoop中支持的压缩方式有多种,比如Gzip,bzip2,zlib等,其中Gzip是hadoop中内置就支持的一种压缩方式,这种压缩方式在平时linux的开发人员和管理员中使用的比较广泛,压缩比也比较高,压缩速度也还不错,所以很多人都喜欢第一趋向于使用这种压缩格式进行文件的压缩。 在hadoop中,要在mapreduce 的job中使用gzip压缩是比较容易的,不记得是从哪个版本开始,h...
阅读全文
posted @ 2012-06-15 17:54
阿笨猫
阅读(4203)
推荐(1)
摘要:
在考虑如何压缩那些将由MapReduce处理的数据时,考虑压缩格式是否支持分割是很重要的。考虑存储在HDFS中的未压缩的文件,其大小为1GB,HDFS的块大小为64MB,所以该文件将被存储为16块,将此文件用作输入的MapReduce作业会创建1个输人分片(split ,也称为“分块”。对于block,我们统一称为“块”。)每个分片都被作为一个独立map任务的输入单独进行处理。现在假设。该.文件是一个grip格式的压缩文件,压缩后的大小为1GB。和前面一样,HDFS将此文件存储为16块。然而,针对每 一块创建一个分块是没有用的,因为不可能从gzip数据流中的任意点开始读取,map任务也不可能独
阅读全文
posted @ 2012-06-15 17:53
阿笨猫
阅读(1373)
推荐(0)
摘要:
编码器和解码器用以执行压缩解压算法。在Hadoop里,编码/解码器是通过一个压缩解码器接口实现的。因此,例如,GzipCodec封装了gzip压缩的压缩和解压算法。下表列出了Hadoop可用的编码/解码器。 压缩格式 Hadoop压缩编码/解码器 DEFLATE org.apache.hadoop.io.compress.DefaultCodec gzip org.apache.ha...
阅读全文
posted @ 2012-06-15 17:37
阿笨猫
阅读(3856)
推荐(0)
摘要:
http://blog.csdn.net/xw13106209/article/details/6924458hadoop 版本0.20和之前的版本差距较大,包括部分api结构,配置文件结构在hadoop 权威指南中有说明,原文如下:The new Java MapReduce APIRelease 0.20.0 of Hadoop included a new Java MapReduce API, sometimes referred to as “Context Objects,” designed to make the API easier to evolve in the futu
阅读全文
posted @ 2012-06-15 17:32
阿笨猫
阅读(1704)
推荐(1)
摘要:
1.下面是主要的类层次图 2.Writable和WritableComparable的子类们基本大同小异 3.RawComparator和WritableComparator 举例如下,以下以text类型的comparator每个字符从高到低位比较,对于数字类型的字符串也是比较适用的 /** A WritableComparator optimized for Text keys. */...
阅读全文
posted @ 2012-06-15 17:32
阿笨猫
阅读(3567)
推荐(0)
摘要:
http://caibinbupt.iteye.com/blog/270378PackageDependencestool提供一些命令行工具,如DistCp,archivemapreduceHadoop的Map/Reduce实现filecache提供HDFS文件的本地缓存,用于加快Map/Reduce的数据访问速度fs文件系统的抽象,可以理解为支持多种文件系统实现的统一文件访问接口hdfsHDFS,Hadoop的分布式文件系统实现ipc一个简单的IPC的实现,依赖于io提供的编解码功能参考:http://zhangyu8374.iteye.com/blog/86306io表示层。将各种数据编码
阅读全文
posted @ 2012-06-15 17:31
阿笨猫
阅读(1539)
推荐(0)
摘要:
由于版本的不同,可能部分目录有些不同.http://clearity.iteye.com/blog/1331489首先我们需要对hadoop解压包的目录结构有个大概了解,解压下载的hadoop1.0.0版本压缩包到文件系统,目录如下:bin: 此目录下为进行hadoop配置、运行以及管理的shell命令集合c++:此目录下为linux下amd64-64位系统以及i386-32位系统提供的库文件集合conf:此目录下为运行与配置hadoop环境需要的配置文件以及示例文件集合,实际运行时可以对照此目录下的文件结构进行 相应的配置contrib:此目录下针对hadoop运行过程中需要特殊强...
阅读全文
posted @ 2012-06-15 17:30
阿笨猫
阅读(3502)
推荐(0)
摘要:
初衷一直业余的维护着一个hadoop应用程序,一直想看点hadoop源码,主要依据这篇博文(http://caibinbupt.iteye.com/blog/262412)的线索看下去,如果中途有自己感兴趣的就先散开看看.原则以看代码为主,看别人的文章为辅,但是也不会很仔细的阅读每行代码,知道那些代码能干些什么事,以后遇到问题回来仔细查看,同时将自己看到过的资料记录下来,基本不会自己总结写,(呵呵比较浪费时间,不过参考的文档都给出url自己)直接从笔记里面copy的,排版可能不那么好看ps:阅读代码版本为hadoop-0.20.2-cdh3u0 源码包下载http://www.apache.o
阅读全文
posted @ 2012-06-15 17:27
阿笨猫
阅读(2526)
推荐(0)