走在前往架构师的路上

专注于分布式计算,大数据,数据挖掘,机器学习算法等领域的研究

Redis源码分析(三十六)--- Redis中的11大优秀设计

坚持了一个月左右的时间,从最开始的对Redis的代码做分类,从struct结构体分析开始,到最后分析main主程序结束,中间,各大模块的代码逐个击破,学习,总之,收获了非常多,好久没有这么久的耐心把一个框架学透,学习一个框架,会用那只是小小的一部分,能把背后的原理吃透才是真功夫。在这个学习的最后阶...

2014-11-08 10:16:37

阅读数:16846

评论数:6

从Hadoop Writable序列化框架到java的序列化原理

继上一个模块之后,此次分析的内容是来到了Hadoop IO相关的模块了,IO系统的模块可谓是一个比较大的模块,在Hadoop Common中的io,主要包括2个大的子模块构成,1个是以Writable接口为主的序列化模块,还有1个是解压缩模块,所以打算分成2个模块做分析,今天来说说序列化,反序列化...

2014-11-30 20:01:35

阅读数:2186

评论数:0

Hadoop Configuration配置类的分析

学习Hadoop Common模块,当然应该是从最简单,最基础的模块学习最好,所以我挑选了其中的conf配置模块进行学习。整体的类结构非常简单。 只要继承了Configurable接口,一般表明就是可配置的,可以执行相应的配置操作,但是配置的集中操作的体现是在Configuration这...

2014-11-29 20:51:09

阅读数:3648

评论数:2

Hadoop Common 结构学习

从今天开始,开始研究学习Hadoop Common相关的源码结构。Hadoop Common在Hadoop1.0中是在core包下面的。此包下面的内容供HDFS和MapReduce公用,所以作用还是非常大的。Hadoop Common模块下的内容是比较多的。本人打算在后面的学习中挑选部分模块进行分...

2014-11-29 08:31:26

阅读数:4264

评论数:1

TaskTracker学习笔记

上次分析完JobTracker通过TaskScheduler如何把作业分配给TaskTracker,这次把目光 移动到TaskTracker上面。TaskTracker在这里其实是一个slave的从属关系。我在后面的分析会通过TaskTracker的执行流程,主要讲他的2个过程的分析1.作业启动执...

2014-11-25 09:41:50

阅读数:2246

评论数:0

JobTracker作业调度分析

JobTracker的作业调度给我感觉就是比较宏观意义上的操作。倘若你只了解了MapReduce的工作原理是远远不够的,这时去学习一下他在宏观层面的原理实现也是对我们非常有帮助的。首先我们又得从上次分析的任务提交之后的操作说起,Job作业通过RPC通信提交到JobTracker端之后,接下来会触发...

2014-11-23 10:32:48

阅读数:2433

评论数:0

位示图算法实现大数据的存储

今天在看排序算法的时候,看到了用位示图法实现的,上面说可以大大减少内存的使用,尤其针对大数据的存储,数据量非常大的的时候,他的优点就比较明显了,因为他存储数据值依靠1个位来表示。具体是怎么回事呢,继续往下看。位图法,位图法,当然和位相关,下面我给出一组数组int[]{1, 3, 5,8},也许在普...

2014-11-22 21:01:07

阅读数:2730

评论数:0

JobTracker作业启动过程分析

在Hadoop中,启动作业运行的方式有很多,可以用命令行格式把打包好后的作业提交还可以,用Hadoop的插件进行应用开发,在这么多的方式中,都会必经过一个流程,作业会以JobInProgress的形式提交到JobTracker中。什么叫JobTracker呢,也许有些人了解Hadoop只知道他的M...

2014-11-21 19:34:36

阅读数:3342

评论数:0

OutputFormat输出过程的学习

花了大约1周的时间,终于把MapReduce的5大阶段的源码学习结束掉了,收获不少,就算本人对Hadoop学习的一个里程碑式的纪念吧。今天花了一点点的时间,把MapReduce的最后一个阶段,输出OutputFormat给做了分析,这个过程跟InputFormat刚刚好是对着干的,二者极具对称性。...

2014-11-19 10:40:39

阅读数:5935

评论数:0

Reduce Task的学习笔记

MapReduce五大过程已经分析过半了,上次分析完Map的过程,着实花费了我的很多时间,不过收获很大,值得了额,这次用同样的方法分析完了Reduce的过程,也算是彻底摸透了MapReduce思想的2个最最重要的思想了吧。好,废话不多,切入正题,在学习Reduce过程分析的之前,我特意查了书籍上或...

2014-11-18 10:39:11

阅读数:3254

评论数:1

Partitioner分区过程分析

Partition的中文意思就是分区,分片的意思,这个阶段也是整个MapReduce过程的第三个阶段,就在Map任务的后面,他的作用就是使key分到通过一定的分区算法,分到固定的区域中,给不同的Reduce做处理,达到负载均衡的目的。他的执行过程其实就是发生在上篇文章提到的collect的过程阶段...

2014-11-16 14:48:59

阅读数:3256

评论数:0

Map Task内部实现分析

上篇我刚刚学习完,Spilt的过程,还算比较简单的了,接下来学习的就是Map操作的过程了,Map和Reduce一样,是整个MapReduce的重要内容,所以,这一篇,我会好好的讲讲里面的内部实现过程。首先要说,MapTask,分为4种,可能这一点上有人就可能知道了,分别是Job-setup Tas...

2014-11-15 08:58:49

阅读数:4223

评论数:3

MapReduce的InputFormat过程的学习

昨天经过几个小时的学习,把MapReduce的第一个阶段的过程学习了一下,也就是最最开始的时候从文件中的Data到key-value的映射,也就是InputFormat的过程。虽说过程不是很难,但是也存在很多细节的。也很少会有人对此做比较细腻的研究,学习。今天,就让我来为大家剖析一下这段代码的原理...

2014-11-14 10:14:05

阅读数:2364

评论数:0

MapReduce总体架构分析

继前段时间分析Redis源码一段时间之后,我即将开始接下来的一段技术学习的征程,研究的技术就是当前非常火热的Hadoop,但是一个Hadoop生态圈是非常庞大的,所以首先我的打算是挑选其中的一部分模块,去学习,研究,我就选中了MapReduce。MapReduce最早是由Google公司在04年发...

2014-11-12 21:29:50

阅读数:2764

评论数:0

Hadoop在Windows下的安装配置

因为本人最近最近一段时间 都在学习Hadoop,接触了比较多的理论,但是想要深入的去学习Hadoop整个平台,那就必须实战的训练,首先第一步,当然是先搭建好一个Hadoop平台为先。但是比较坑爹的是,Hadoop是要求安装在Linux环境下的,在Windows下是不能直接运行的。所以只能在Wind...

2014-11-12 10:29:33

阅读数:2052

评论数:0

浅谈MapReduce

从今天开始,本人将会开始对另一项技术的学习,就是当下炙手可热的Hadoop分布式就算技术。目前国内外的诸多公司因为业务发展的需要,都纷纷用了此平台。国内的比如BAT啦,国外的在这方面走的更加的前面,就不一一列举了。但是Hadoop作为Apache的一个开源项目,在下面有非常多的子项目,比如HDFS...

2014-11-09 10:34:03

阅读数:3516

评论数:4

Redis源码分析(三十五)--- redis.c服务端的实现分析(2)

在Redis服务端的代码量真的是比较大,如果一个一个API的学习怎么实现,无疑是一种效率很低的做法,所以我今天对服务端的实现代码的学习,重在他的执行流程上,而对于他的模块设计在上一篇中我已经分析过了,不明白的同学可以接着看上篇。所以我学习分析redis服务端的实现也是主要从main函数开始。在分析...

2014-11-08 09:45:20

阅读数:6176

评论数:0

Redis源码分析(三十四)--- redis.h服务端的实现分析(1)

上次刚刚分析过了客户端的结构体分析,思路比较简答,清晰,最后学习的是服务端的实现,服务端在Redis可是重中之重,里面基本上囊括了之前模块中涉及到的所有知识点,从redis的头文件就可以看出了,redis.h代码量就已经破1000+行了,而且都还只是一些变量,宏定义的声明,和一些方法原型的声明。所...

2014-11-07 15:43:21

阅读数:3903

评论数:0

Redis源码分析(三十三)--- redis-cli.c客户端命令行接口的实现(2)

今天学习完了命令行客户端的后续内容,整体感觉就是围绕着2个东西转,config和mode。为什么我会这么说呢,请继续往下看,客户端中的配置结构体和之前我们所学习的配置结构体,不是指的同一个概念,cli中的结构体除了基本的ip,Port端口号,还有就是各种mode的配置了。 /* Redis配置结...

2014-11-07 10:20:15

阅读数:4170

评论数:0

Redis源码分析(三十二)--- redis-cli.c客户端命令行接口的实现(1)

分析了将近1个月的Redis源代码了,也到了最核心的,最贴近系统开始的地方了,我把他取名为main目录,里面就包括了2个重要的文件,redis-cli和redis文件,1个代表的是客户端的执行文件,1个代表的是服务端的文件,这2个也是整个系统最最核心的模块,所以我把他归结到main主程序模块了,主...

2014-11-06 10:48:27

阅读数:4606

评论数:0

提示
确定要删除当前文章?
取消 删除