Hadoop
文章平均质量分 62
iteye_1868
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Hadoop中的快速排序算法
在Hadoop中,排序是MapReduce框架中最重要的操作之一,Map Task和Reduce Task都会对数据按照key排序,不管逻辑上是否真的需要排序,任何程序中的数据都会被排序,这是Hadoop的默认行为。 [b]MapReduce中使用了两种排序算法:快速排序和优先队列。在Map和Reduce Task的缓冲区使用的是快速排序,而对磁盘上的IFile文...2013-05-22 15:46:23 · 851 阅读 · 0 评论 -
Hadoop深入学习:OutputFormat组件
在本节中,我们着重来学习一下MapReduce编程框架中的OutputFormat组件。 在MapReduce中,OutputFormat主要用于描述经reducer处理后输出的数据的格式,它会将用户提供的key/value键值对而写入到特定格式的文件中。 我们先看一下在1.0老版本中的OutputFormat接口的代码...原创 2013-05-27 16:45:06 · 289 阅读 · 0 评论 -
Hadoop深入学习:MapReduce作业提交和初始化
之前已经学过了MapReduce接口编程模型及涉及的相关组件,本节我们主要学习MapReduce的作业提交过程和如何初始化作业这两部分的内容。 下面我们来熟悉一下MapReduce作业的提交和初始化的过程:[img]http://dl2.iteye.com/upload/attachment/0085/0858/7984024f-ef2c-3672-8438-...原创 2013-05-27 22:24:00 · 333 阅读 · 0 评论 -
Hadoop深入学习:MapReduce中的心跳机制
在本节中,我们特别来学习一些有心跳(HeartBeat)的相关知识,这包括用途、心跳的发送、接收和应答。 JobTracker和TaskTracker之间是通过心跳来进行信息沟通的,TaskTracker通过周期性的通过心跳向JobTracker汇报该节点和任务的状态。心跳实际上就是一个RPC函数,在Hadoop中,心跳主要有三个作用: 1)、判...原创 2013-05-28 13:13:17 · 687 阅读 · 0 评论 -
Hadoop深入学习:MapTask详解
在本节中,我们主要来学习MapTask的内部实现。 [size=large][color=blue]整体执行流程[/color][/size][img]http://dl2.iteye.com/upload/attachment/0085/1100/348fcf76-1789-3603-b41d-2d3b14c3c993.jpg[/i...原创 2013-05-28 15:23:01 · 217 阅读 · 0 评论 -
Hadoop深入学习:ReduceTask详解
本节我们来着重学习ReduceTask的内部操作流程和实现。 我们先看一下ReduceTask操作流程:[img]http://dl2.iteye.com/upload/attachment/0085/1167/46622c7e-6b58-3d6f-94ee-daf445063c1b.jpg[/img] 从流程图中我们可以看出,ReduceT...原创 2013-05-28 16:16:52 · 324 阅读 · 0 评论 -
Hadoop深入学习:Hadoop全排序中的Sampler采样器
在[url=http://flyingdutchman.iteye.com/blog/1876582]Partitioner组件的设计与实现[/url]中,我们已经了解过Partitioner组件的其中一个和全排序相关的实现类——TotalOrderPartitioner。 我们知道,在Hadoop中,最终的处理结果集中的数据,除非就由一个Reduce Task处...原创 2013-05-28 18:27:42 · 310 阅读 · 0 评论 -
Hadoop深入学习:MapReduce的Shuffle过程详解
在本节中,我们再来仔细回顾一下MapReduce编程框架的所谓的“洗牌”过程,即MapReduce的Shuffle过程,可以说Shuffle是MapReduce编程框架的核心,能直接影响到MapReduce的性能。实际上,对MapReduce的调优在很大程度上就是对MapReduce Shuffle的性能的调优。 那么,Shuffle到底在MapReduce处...原创 2013-05-29 22:11:15 · 614 阅读 · 0 评论 -
CentOS 6.4 安装伪分布式Hadoop 1.0.3
在本章中学习如何在CentOS 6.4上安装配置Hadoop开发环境。 [size=x-large][color=blue]配置ssh及生成密码对[/color][/size] 首先需要安装ssh:[quote] [color=blue]# yum install ssh[/color] [...原创 2013-07-02 00:52:12 · 124 阅读 · 0 评论 -
Hadoop深入学习:再谈MapReduce作业提交和执行
在本章中,我们将来重温一下和Hadoop的作业提交和执行流程。 看下图,我们来比较详细的学习一下该流程:[img]http://dl2.iteye.com/upload/attachment/0086/4847/ead0ea1f-0df7-349f-af13-3f331f191b01.jpg[/img] 从上图中可以看出,...原创 2013-07-03 22:00:03 · 254 阅读 · 0 评论 -
Hadoop深入学习:Combiner
在本节中,我们着重学习MapReduce编程模型中的Combiner组件。 [color=blue]每一个map都可能会产生大量的本地输出,Combiner的作用就是对map端的输出先做一次合并,以减少在map和reduce节点之间的数据传输量,以提高网络IO性能,是MapReduce的一种优化手段之一。[/color] 1)、Combiner最...原创 2013-07-04 00:03:27 · 177 阅读 · 0 评论 -
Hadoop深入学习:解析HDFS的写文件流程
之前,我们已经学习过了HDFS的读写数据流程,详情请看[url=http://flyingdutchman.iteye.com/blog/1874713]《Hadoop深入学习:HDFS主要流程——写文件》[/url],近来鄙人在看《Hadoop:The Definiyive Guide(3rd edition)》,发现之前的体会还有些不足,故在本章中,我们再来重温一下Client...原创 2013-07-06 16:43:05 · 158 阅读 · 0 评论 -
Hadoop深入学习:MapReduce Job中的Shuffle和sort
[img]http://dl2.iteye.com/upload/attachment/0086/6203/55680026-b213-3a44-aa33-dab947f751a8.png[/img] MapReduce Job中的Shuffle和sort示意图 ...原创 2013-07-06 22:30:31 · 127 阅读 · 0 评论 -
CentOS 6.4 hadoop集成Hive
在本节中,我们来学习如何安装Hive。在之前我们已经学习过如何在CentOS上安装Hadoop,详情请参看[url=http://flyingdutchman.iteye.com/admin/blogs/1897181]CentOS 6.4 安装伪分布式Hadoop 1.0.3 [/url],这里不再赘述。 第一步,下载并解压Hive的tar文件:[quote...原创 2013-07-09 01:58:20 · 177 阅读 · 0 评论 -
CentOS 6.4 hadoop集成 Hbase Zookeeper
再上一章中我们已经学习了[url=http://flyingdutchman.iteye.com/admin/blogs/1901639]Hadoop-1.0.3集成Hive-0.8.1[/url],在这一章节我们来学习一下如何配置Hbase-0.92.2。 [size=large][color=blue]配置Zookeeper先[/color][/size]...原创 2013-07-09 22:41:33 · 220 阅读 · 0 评论 -
Hadoop深入学习:Reduce组件详解
在本节中我们主要来学习MapReduce编程接口模型中的Reduce组件。 和学习[url=http://flyingdutchman.iteye.com/blog/1876405]Mapper组件详解[/url]一样,我们先来看看1.0新版本中Reduce代码:[code="java"]public class Reducer { public c...原创 2013-05-27 15:59:37 · 258 阅读 · 0 评论 -
Hadoop深入学习:Partitioner组件的设计与实现
本节我们来学习MapReduce编程框架中的Partitioner接口和其他相关的信息。 Partitioner的作用就是对Mapper产生的中间数据进行分片,以便将同一分片的数据交给同一个Reducer处理,该过程是MapReduce的shuffle过程,特别是Map端的shuffle的一部分。 [b]Partitioner它直接影响Reduc...原创 2013-05-27 15:31:47 · 427 阅读 · 0 评论 -
Hadoop深入学习:重温
从今天起,鄙人开始重温重去年九月份开始学习的Hadoop,并将之形成文字。一方面重温Hadoop的一些知识点,查漏补缺,加深印象;另一方面也希望能和他人有一些交流,由于本人能力有限,由理解不对或表达不清之处,望“内功深厚者”加以指点,当然但若能对初学者能由些许帮助,鄙人将十分荣幸! 当然,借此写博客的机会,也希望对Hadoop做更深入的理解,并一直专研下去! ...原创 2013-05-23 23:51:56 · 147 阅读 · 0 评论 -
Hadoop深入学习:HDFS分布式文件系统的体系结构
Hadoop之所以成为能够让用户可以轻松架构和使用的分布式计算平台,用户可以在其上管理、开发和并行处理大数据的应用,其根本就是由于HDFS起的基础作用。 HDFS主要由以下优点: 1)、支持操大文件,一般来说,一个Hadoop文件系统可以轻松的存储TB、PB级别的数据。 2)、检测和快速应对硬件故障,在大量通用的廉价硬件构建的集...原创 2013-05-24 13:48:23 · 417 阅读 · 0 评论 -
Hadoop深入学习:HDFS主要流程——NameNode节点上的文件和目录操作
上节中我们已经学习了HDFS的体系结构及其优缺点,本节我们将着重学习HDFS的几个主要流程。 [color=blue][b]客户端在NameNode上的文件与目录操作[/b][/color] [b]创建文件目录[/b] 客户端命令:[code="java"] hadoop fs -mkd...原创 2013-05-24 14:51:39 · 468 阅读 · 0 评论 -
Hadoop深入学习:HDFS主要流程——读数据
本节我们将着重学习客户端是如何读取HDFS上的数据的操作过程。 查看HDFS上的文件内容的命令行操作:[code="java"] hadoop fs -cat example.txt [/code]整个“读”流程如下图所示:[img]http://dl2.iteye.com/upload/attachment/008...原创 2013-05-24 15:37:01 · 161 阅读 · 0 评论 -
Hadoop深入学习:HDFS主要流程——写文件
本节我们主要学习HDFS主流程中的写文件的整个流程。 向HDFS中写入数据,即使不考虑节点出戳后的故障处理,也是最复杂的流程。 相关的些命令有:[code="java"] hadoop fs -put example.txt //写单个文件 hadoop fs -CopyFromL...原创 2013-05-24 17:35:12 · 179 阅读 · 0 评论 -
Hadoop深入学习:HDFS主要流程——SNN合并fsimage和编辑日志
本节我们主要写Secondary NameNode是如何合并命名空间文件和编辑日志文件。 客户端对HDFS的文件系统目录树进行的任何修改,都会被记录到编辑日志文件中,以保证系统出现故障后,能够根据这些日志进行恢复,但是随着日志不断地增长,这意味着系统从气候,需要进行恢复的时间也就越长。为了避免这一情况的发生,HDFS引入了检查点机制。 命名空间镜像(F...原创 2013-05-24 18:33:00 · 352 阅读 · 0 评论 -
Hadoop深入学习:NameNode
对于Hadoop中的所有服务器节点,从HDFS的角度来看,分为NameNode节点和DataNode节点,其中在整个集群中只有一个NameNode节点,其他都是DataNode节点;从MapReduce的角度看,分为JobTracker节点和TaskTracker节点,其中只有一个JobTracker节点,其他所有节点都是TaskTracker节点。 NameNo...原创 2013-05-25 00:02:50 · 263 阅读 · 0 评论 -
Hadoop深入学习:MapReduce
本节我们主要来学习Hadoop MapReduce分布式计算框架,它主要分为两部分:[b]编程模型和运行时环境[/b]。 [b]MapReduce编程模型为用户提供了简单易用的编程接口,可以让用户像编写不同的程序一向只要实现两个简单的函数(map()和reduce()函数)便实现一个分布式的应用程序,而其他的比价麻烦的和分布式相关的所有操作都由MapReduce的...原创 2013-05-25 23:28:19 · 158 阅读 · 0 评论 -
Hadoop深入学习:MapReduce作业的提交流程和作业的生命周期
在本节中我们主要来学习MapReduce作业的提交流程和作业的生命周期。 一个标准的MapReduce作业的执行包括的流程是:代码编写——>作业配置——>作业提交——>Map Task的分配与执行——>处理中间结果(shuffle阶段)——>Reduce Task的分配与执行——>输出最终结果数据——>作业完成。下面是详细的作业流程:[img]http://d...2013-05-25 23:30:42 · 309 阅读 · 0 评论 -
Hadoop深入学习:Map Task和Reduce Task的执行流程
本节我们主要看一下Map Task和Reduce Task的执行流程:[img]http://dl2.iteye.com/upload/attachment/0085/0217/81c9eadc-31cd-33e8-b12f-eeb33d2539a5.jpg[/img] 好了,接下来我们再看看Map Task和Reduce Task的一个完整的执行流程:...2013-05-26 00:56:02 · 389 阅读 · 0 评论 -
Hadoop深入学习:MapReduce的编程模型
MapReduce的一个设计目标就是易用性,它提供了一个高度抽象化的非常简单的编程模型。 MapReduce这个分布式计算框架,其应用场景往往是那些可以将任务分解成相互独立的子问题。基于这个特点, MapReduce编程模型将分布式编程分成了五个步骤: 1),迭代遍历输入数据,并将数据解析成简单的key/value键值对的形式,该阶段段对应着In...原创 2013-05-26 19:43:25 · 207 阅读 · 0 评论 -
Hadoop深入学习:MapReduce的序列化
在学习MapReduce编程模型接口的五个组件之前,我们先来看一下MapReduce的序列化。 那么什么是序列化呢? 序列化就是讲一个对象编码成一个字节流;相反,从字节流中重新构建对象就叫做反序列化。序列化主要有三种用途: ●持久化:将内存中的对象经序列化后保存到磁盘上; ●作为通信的数据传输格式:将一个机器上的内存中的...2013-05-26 20:27:32 · 226 阅读 · 0 评论 -
Hadoop深入学习:InputFormat组件
在本节里,我们着重学习MapReduce编程接口模型中的InputForamt组件。 InputFormat主要用于描述输入数据的格式,提供了以下两个功能: 1)、数据切分,按照某个策略将输入数据且分成若干个split,以便确定Map Task的个数即Mapper的个数,在MapReduce框架中,一个split就意味着需要一个Map Task;...2013-05-26 22:26:12 · 378 阅读 · 0 评论 -
Hadoop深入学习:Mapper组件详解
本节我们主要学习MapReduce编程接口模型中的Mapper组件,主要是学习其中一些的方法,如setup()、map()和cleanup()等方法地使用。 我们先来看一下新版本中的Mapper代码:[code="java"]public class Mapper { public class Context extends MapCon...2013-05-26 22:29:41 · 637 阅读 · 0 评论 -
CentOS 6.4 hadoop集成 Hbase Hive
在之前的[url=http://flyingdutchman.iteye.com/admin/blogs/1902210]CentOS 5.4 hadoop集成 Hbase[/url]和[url=http://flyingdutchman.iteye.com/admin/blogs/1901639]CentOS 5.4 hadoop集成Hive[/url]两个章节中,我们已经学习...原创 2013-07-10 00:05:08 · 231 阅读 · 0 评论
分享