上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 19 下一页
  2012年7月4日
摘要: 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 阿笨猫 阅读(1100) 评论(0) 推荐(0) 编辑
  2012年7月3日
摘要: 1.GFS论文 HDFS是GFS的简化开源实现版本,了解GFS是不可缺少的.英文版本论文:http://research.google.com/archive/gfs.html论文中文翻译版:http://blademaster.ixiezi.com/2010/03/27/the-google-file-system%E4%B8%AD%E6%96%87%E7%89%88/其他参考:http://www.nosqlnotes.net/archives/2372.HDFS设计官方文档:http://hadoop.apache.org/common/docs/r0.19.2/cn/hdfs_desi 阅读全文
posted @ 2012-07-03 17:23 阿笨猫 阅读(882) 评论(0) 推荐(0) 编辑
  2012年6月23日
摘要: 1. protocol在rpc中的作用通过对org.apache.hadoop.ipc包分析中,Hadoop实现了基于IPC模型的RPC机制,可以不需要像Java中实现的RMI机制一样,在RPC调用的C/S两端分别创建Stub和Skeleton,而是通过一组协议来进行RPC调用就可以实现通信。这主要是由于Hadoop所采用的序列化机制简化了RPC调用的复杂性。Hadoop定义了自己的通信协议,这些协议都是建立在TCP/IP协议之上的,规范了通信两端的约定。Hadoop集群中,不同进程之间通信需要使用合适的协议才能够进行交互。在协议接口中约定了通信双方的特定行为,那么,在实现这些通信协议的实现类 阅读全文
posted @ 2012-06-23 15:14 阿笨猫 阅读(2393) 评论(0) 推荐(0) 编辑
  2012年6月22日
摘要: 1. nio的reactor模式 具体的处理方式: · 1.一个线程来处理所有连接(使用一个Selector) · 2.一组线程来读取已经建立连接的数据(多个Selector,这里的线程数一般和cpu的核数相当); · 3.一个线程池(这个线程池大小可以根据业务需求进行设置) · 4.一个线程处理所有的连接的数据的写操作(一个Selector) 2. 简明流程图 3. RPC ... 阅读全文
posted @ 2012-06-22 12:02 阿笨猫 阅读(3731) 评论(0) 推荐(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 阿笨猫 阅读(2701) 评论(0) 推荐(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 阿笨猫 阅读(1881) 评论(0) 推荐(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 阿笨猫 阅读(732) 评论(0) 推荐(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 阿笨猫 阅读(7541) 评论(0) 推荐(0) 编辑
摘要: hadoop中支持的压缩方式有多种,比如Gzip,bzip2,zlib等,其中Gzip是hadoop中内置就支持的一种压缩方式,这种压缩方式在平时linux的开发人员和管理员中使用的比较广泛,压缩比也比较高,压缩速度也还不错,所以很多人都喜欢第一趋向于使用这种压缩格式进行文件的压缩。 在hadoop中,要在mapreduce 的job中使用gzip压缩是比较容易的,不记得是从哪个版本开始,h... 阅读全文
posted @ 2012-06-15 17:54 阿笨猫 阅读(4172) 评论(0) 推荐(1) 编辑
摘要: 在考虑如何压缩那些将由MapReduce处理的数据时,考虑压缩格式是否支持分割是很重要的。考虑存储在HDFS中的未压缩的文件,其大小为1GB,HDFS的块大小为64MB,所以该文件将被存储为16块,将此文件用作输入的MapReduce作业会创建1个输人分片(split ,也称为“分块”。对于block,我们统一称为“块”。)每个分片都被作为一个独立map任务的输入单独进行处理。现在假设。该.文件是一个grip格式的压缩文件,压缩后的大小为1GB。和前面一样,HDFS将此文件存储为16块。然而,针对每 一块创建一个分块是没有用的,因为不可能从gzip数据流中的任意点开始读取,map任务也不可能独 阅读全文
posted @ 2012-06-15 17:53 阿笨猫 阅读(1364) 评论(0) 推荐(0) 编辑
摘要: 编码器和解码器用以执行压缩解压算法。在Hadoop里,编码/解码器是通过一个压缩解码器接口实现的。因此,例如,GzipCodec封装了gzip压缩的压缩和解压算法。下表列出了Hadoop可用的编码/解码器。 压缩格式 Hadoop压缩编码/解码器 DEFLATE org.apache.hadoop.io.compress.DefaultCodec gzip org.apache.ha... 阅读全文
posted @ 2012-06-15 17:37 阿笨猫 阅读(3819) 评论(0) 推荐(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 阿笨猫 阅读(1689) 评论(0) 推荐(1) 编辑
摘要: 1.下面是主要的类层次图 2.Writable和WritableComparable的子类们基本大同小异 3.RawComparator和WritableComparator 举例如下,以下以text类型的comparator每个字符从高到低位比较,对于数字类型的字符串也是比较适用的 /** A WritableComparator optimized for Text keys. */... 阅读全文
posted @ 2012-06-15 17:32 阿笨猫 阅读(3553) 评论(0) 推荐(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 阿笨猫 阅读(1532) 评论(0) 推荐(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 阿笨猫 阅读(3496) 评论(0) 推荐(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 阿笨猫 阅读(2518) 评论(0) 推荐(0) 编辑
  2012年6月7日
摘要: streaminghttp://hadoop.apache.org/common/docs/r0.21.0/cn/streaming.html#Hadoop+Streaminghttp://dongxicheng.org/mapreduce/hadoop-streaming-programming/http://dongxicheng.org/mapreduce/hadoop-streaming-advanced-programming/http://blog.csdn.net/yfkiss/article/category/817084pipeshttp://www.wikieno.com/ 阅读全文
posted @ 2012-06-07 17:36 阿笨猫 阅读(539) 评论(0) 推荐(0) 编辑
  2012年6月5日
摘要: http://yalung929.blog.163.com/blog/static/203898225201212981731971/http://www.fuzhijie.me/?p=741引言:top命令作为Linux下最常用的性能分析工具之一,可以监控、收集进程的CPU、IO、内存使用情况。比如我们可以通过top命令获得一个进程使用了多少虚拟内存(VIRT)、物理内存(RES)、共享内存(SHR)。最近遇到一个咨询问题,某产品做性能分析需要获取进程占用物理内存的实际大小(不包括和其他进程共享的部分),看似很简单的问题,但经过研究分析后,发现背后有很多故事……1VIRTRESSHR的准确含 阅读全文
posted @ 2012-06-05 10:46 阿笨猫 阅读(51412) 评论(0) 推荐(5) 编辑
  2012年5月31日
摘要: http://www.kernel.org/doc/man-pages/online/pages/man5/proc.5.html极力推荐,详细http://bbs.chinaunix.net/thread-2002769-1-1.htmlLinux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。基于/proc文件系统如上所述的特殊性,其内的文件也常被称作 阅读全文
posted @ 2012-05-31 19:46 阿笨猫 阅读(842) 评论(0) 推荐(1) 编辑
摘要: Linux利器 stracestrace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。strace使用参数-p 跟踪指定的进程-f 跟踪由fork子进程系统调用-F 尝试跟踪vfork子进程系统调吸入,与-f同时出现时, vfork不被跟踪-o filename 默认strace将结果输出到stdout。通过-o可以将输出写入到filename文件 阅读全文
posted @ 2012-05-31 16:23 阿笨猫 阅读(11222) 评论(0) 推荐(1) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 19 下一页