- 博客(15)
- 收藏
- 关注
转载 MapReduce: 提高MapReduce性能的七点建议[译]
Cloudera提供给客户的服务内容之一就是调整和优化MapReduce job执行性能。MapReduce和HDFS组成一个复杂的分布式系统,并且它们运行着各式各样用户的代码,这样导致没有一个快速有效的规则来实现优化代码性能的目的。在我看来,调整cluster或job的运行更像一个医生对待病人一样,找出关键的“症状”,对于不同的症状有不同的诊断和处理方式。 在医学领域,没有
2014-03-06 16:34:27
376
转载 mapreduce 作业优化
map阶段优化参数:io.sort.mb(default100)当maptask开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘。而是会利用到了内存buffer来进行已经产生的部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能。每一个map都会对应存在一个内存buffer,map会将已经产生的部分结果先写入到该buffer中,这个
2014-03-06 16:33:12
452
转载 多数据源的MapReduce作业(二)--基于Distributed的复制联结
多数据源在reduce侧做join操作,效率不会太高。我们首先会让所有的数据在网络上重排,然后在conbine联结过程中丢弃了大部分的数据。如果我们在mapper侧就去除不必要的数据,联结会更有效率。 map阶段执行联结主要障碍是一个mapper正在处理的记录要能访问到另外表的所有数据,这样就能保证map侧联结可以正常工作。 引入hadoop的DistributedCache
2014-03-03 21:29:18
333
转载 多数据源的MapReduce作业(三)--map侧过滤后在reduce侧联结
在某些情况下,SemiJoin抽取出来的小表的key集合在内存中仍然存放不下,这时候可以使用BloomFiler以节省空间。BloomFilter最常见的作用是:判断某个元素是否在一个集合里面。它最重要的两个方法是:add() 和contains()。最大的特点是不会存在false negative,即:如果contains()返回false,则该元素一定不在集合中,但会存在一定的true n
2014-03-03 20:42:55
342
转载 多数据源的MapReduce作业(一)--Reduce侧的联结
场景:实现多表的join操作。select customers.*,orders.* from customersjoin orderson customers.id =orders.id使用DataJoin软件包进行实现联结操作。扩展三个类:1、DataJoinMapperBase2、DataJoinReducerB
2014-03-03 20:18:05
740
转载 Storm数据流模型的分析及讨论
本文首先介绍了Storm的基本概念和数据流模型,然后结合一个典型应用场景来说明Storm支持Topology之间数据流订阅的必要性,最后对比了Storm与另一个流处理系统在数据流模型上的区别之处。Storm基本概念Storm是一个开源的实时计算系统,它提供了一系列的基本元素用于进行计算:Topology、Stream、Spout、Bolt等等。在Storm中,一个实时应用的计算任务被打
2014-02-28 11:20:44
699
转载 数据仓库定义
数据仓库之父Bill Inmon在1991年出版的“Building the Data Warehouse”一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Mak
2013-12-15 09:57:50
529
转载 Hadoop集群系列7:WordCount运行详解(1)
1、MapReduce理论简介1.1 MapReduce编程模型MapReduce采用"分而治之"的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单地说,MapReduce就是"任务的分解与结果的汇总"。在Hadoop中,用于执行MapReduce任务的机器角色有两个:一个是JobTracker;另
2013-12-15 09:54:32
454
转载 Hadoop集群_Eclipse开发环境设置
1、Hadoop开发环境简介1.1 Hadoop集群简介 Java版本:jdk-6u31-linux-i586.bin Linux系统:CentOS6.0 Hadoop版本:hadoop-1.0.0.tar.gz 1.2 Windows开发简介 Java版本:jdk-6u31-windows-i586.exe Win系统:Windows 7 旗舰版 Ec
2013-12-13 13:03:17
586
转载 MapReduce工作原理
JobClient的runJob()方法是用于新建JobClient实例和调用其submitJob()方法。提交作业后,runJob()将每秒轮询作业的进度,如果发现与上一个记录不同,便把报告显示到控制台。作业完成后,如果成功,就显示作业计数器。否则,导致作业失败的错误会被记录到控制台。1、向jobtracker请求一个新的作业ID(通过Jobtracker的getNewJobId())
2013-12-12 18:01:42
362
转载 MapReduce:详解Shuffle过程
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里
2013-12-11 14:35:11
304
转载 MapReduce数据流(三)
额外的MapReduce功能 图4.6 插入了Combiner的MapReduce数据流 Combiner:前面展示的流水线忽略了一个可以优化MapReduce作业所使用带宽的步骤,这个过程叫Combiner,它在Mapper之后Reducer之前运行。Combiner是可选的,如果这个过程适合于你的作业,Combiner实例会在每一个运行map任务的节点上运行。Combiner会接
2013-12-11 14:18:53
394
转载 MapReduce数据流(二)
输入块(InputSplit):一个输入块描述了构成MapReduce程序中单个map任务的一个单元。把一个MapReduce程序应用到一个数据集上,即是指一个作业,会由几个(也可能几百个)任务组成。Map任务可能会读取整个文件,但一般是读取文件的一部分。默认情况下,FileInputFormat及其子类会以64MB(与HDFS的Block默认大小相同,译注:Hadoop建议Split大小与此相同
2013-12-11 14:17:51
371
转载 MapReduce数据流(一)
在上一篇文章中我们讲解了一个基本的MapReduce作业由那些基本组件组成,从高层来看,所有的组件在一起工作时如下图所示:图4.4高层MapReduce工作流水线 MapReduce的输入一般来自HDFS中的文件,这些文件分布存储在集群内的节点上。运行一个MapReduce程序会在集群的许多节点甚至所有节点上运行mapping任务,每一个mapping任务都是平等的:mappers没
2013-12-11 14:16:34
379
转载 MapReduce基础
这篇文章翻译自Yahoo的Hadoop教程,很久之前就看过了,感觉还不错。最近想总结一下以前学的东西,看到现在关于Hadoop的中文资料还比较少,就有了把它翻译出来的想法,希望能帮助到初学者。这只是Yahoo的Hadoop教程中很小的一部分,我下去还会选一些来翻译,一般来说只翻译讲原理的,操作类的就不翻译了。水平有限,不妥之处,请指正(感觉翻译过来后,读起来倒是没英文的顺畅:)。废话说完,正文开始
2013-12-11 14:15:24
346
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人