本月博客排行
-
第1名
龙儿筝 -
第2名
wy_19921005 -
第3名
zysnba - sgqt
- johnsmith9th
- lemonhandsome
年度博客排行
-
第1名
宏天软件 -
第2名
青否云后端云 -
第3名
龙儿筝 - gashero
- wallimn
- vipbooks
- benladeng5225
- wy_19921005
- fantaxy025025
- e_e
- zysnba
- ssydxa219
- sam123456gz
- javashop
- arpenker
- tanling8334
- kaizi1992
- xpenxpen
- wiseboyloves
- xiangjie88
- ranbuijj
- ganxueyun
- xyuma
- sichunli_030
- wangchen.ily
- jh108020
- lemonhandsome
- zxq_2017
- jbosscn
- Xeden
- luxurioust
- lzyfn123
- zhanjia
- forestqqqq
- ajinn
- nychen2000
- wjianwei666
- hanbaohong
- johnsmith9th
- daizj
- 喧嚣求静
- mwhgJava
- silverend
- kingwell.leng
- lchb139128
- lich0079
- kristy_yy
- jveqi
- java-007
- sunj
最新文章列表
Hadoop源代码分析(类TaskStatus)
我们先分析Task,这是一个规模比较大的类,类图如下。Task是一个虚类,它有两个子类,MapTask和ReduceTask,分别是Map任务和Reduce任务的抽象。
在分析Task相关类之前,我们来分析和ID,JobID,TaskID相关的类。
我们从TaskStatus开始来分析Task相关的类,TaskStatus,一看类名就知道它保持了Task的状态。从前面介绍MapRe ...
Hadoop源代码分析(*IDs类和*Context类)
我们开始来分析Hadoop MapReduce的内部的运行机制。用户向Hadoop提交Job(作业),作业在JobTracker对象的控制下执行。Job被分解成为Task(任务),分发到集群中,在TaskTracker的控制下运行。Task包括MapTask和ReduceTask,是MapReduce的Map操作和Reduce操作执行的地方。这中任务分布的方法比较类似于HDFS中NameNode和D ...
Google的高可扩展架构与海量数据处理
Google需要处理数据真正可以称得上海量,这依赖于其分布式的高扩展架构,否则,再强的小型机大型机也扛不住互联网每天产生的“信息垃圾”。Google的Jeff Dean同学为我们解密了Google的高可扩展性架构,ppt可以从这里下载。
一、底层架构
负载并行分配到多个硬件机器上
软件必须采用容错处理,不依赖具体的某一个台机器运行
大量采用刀片服务器和PC Server,低端存储和网络设备
机器 ...
Hadoop源代码分析(包hadoop.mapred中的MapReduce接口)
前面已经完成了对org.apache.hadoop.mapreduce的分析,这个包提供了Hadoop MapReduce部分的应用API,用于用户实现自己的MapReduce应用。但这些接口是给未来的MapReduce应用的,目前MapReduce框架还是使用老系统(参考补丁HADOOP-1230)。下面我们来分析org.apache.hadoop.mapred,首先还是从mapred的MapRe ...
Hadoop源代码分析(mapreduce.lib.partition/reduce/output)
Map的结果,会通过partition分发到Reducer上,Reducer做完Reduce操作后,通过OutputFormat,进行输出,下面我们就来分析参与这个过程的类。
Mapper的结果,可能送到可能的Combiner做合并,Combiner在系统中并没有自己的基类,而是用Reducer作为Combiner的基类,他们对外的功能是一样的,只是使用的位置和使用时的上下文不太一样而已。
M ...
Hadoop源代码分析(包mapreduce.lib.map)
Hadoop的MapReduce框架中,Map动作通过Mapper类来抽象。一般来说,我们会实现自己特殊的Mapper,并注册到系统中,执行时,我们的Mapper会被MapReduce框架调用。Mapper类很简单,包括一个内部类和四个方法,静态结构图如下:
内部类Context继承自MapContext,并没有引入任何新的方法。
Mapper的四个方法是setup,map,cleanup和r ...
Hadoop源代码分析(包mapreduce.lib.input)
接下来我们按照MapReduce过程中数据流动的顺序,来分解org.apache.hadoop.mapreduce.lib.*的相关内容,并介绍对应的基类的功能。首先是input部分,它实现了MapReduce的数据输入部分。类图如下:
类图的右上角是InputFormat,它描述了一个MapReduce Job的输入,通过InputFormat,Hadoop可以:
l ...
Hadoop源代码分析(包org.apache.hadoop.mapreduce)
有了前一节的分析,我们来看一下具体的接口,它们都处于包org.apache.hadoop.mapreduce中。
上面的图中,类可以分为4种。右上角的是从Writeable继承的,和Counter(还有CounterGroup和Counters,也在这个包中,并没有出现在上面的图里)和ID相关的类,它们保持MapReduce过程中需要的一些计数器和标识;中间大部分是和Context相关的 ...
Hadoop源代码分析(重读GFS的文章)
前面的内容基本完成了对HDFS的分析,很微观,从宏观的角度,重读一遍Google的论文,再次把握这个系统,还是很有意义的。
HDFS的设计目标和GFS是高度一致的,甚至HDFS上面的应用,也有对应的项目。
设计方面,从接口看,HDFS缺少快照和记录追加操作(下面分析),其他方面,如架构,单一主服务器,块尺寸,元数据的实现上,差别不大。操作日志的实现上,HDFS的实现方案应该更有优势,创建检查点对 ...
用 Hadoop 进行分布式并行编程Ⅰ
2008-06-06 14:42Hadoop 简介
Hadoop 是一个开源的可运行于大规模集群上的分布式并行编程框架,由于分布式存储对于分布式编程来说是必不可少的,这个框架中还包含了一个分布式文件系统 HDFS( Hadoop Distributed File System )。也许到目前为止,Hadoop 还不是那么广为人知,其最新的版本号也仅仅是 0.16,距离 1.0 似乎都还有很长的一 ...