![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hadoop
文章平均质量分 64
Victory_yonng
这个作者很懒,什么都没留下…
展开
-
MapReduce基础
这篇文章翻译自Yahoo的Hadoop教程,很久之前就看过了,感觉还不错。最近想总结一下以前学的东西,看到现在关于Hadoop的中文资料还比较少,就有了把它翻译出来的想法,希望能帮助到初学者。这只是Yahoo的Hadoop教程中很小的一部分,我下去还会选一些来翻译,一般来说只翻译讲原理的,操作类的就不翻译了。水平有限,不妥之处,请指正(感觉翻译过来后,读起来倒是没英文的顺畅:)。废话说完,正文开始转载 2013-12-11 14:15:24 · 343 阅读 · 0 评论 -
MapReduce: 提高MapReduce性能的七点建议[译]
Cloudera提供给客户的服务内容之一就是调整和优化MapReduce job执行性能。MapReduce和HDFS组成一个复杂的分布式系统,并且它们运行着各式各样用户的代码,这样导致没有一个快速有效的规则来实现优化代码性能的目的。在我看来,调整cluster或job的运行更像一个医生对待病人一样,找出关键的“症状”,对于不同的症状有不同的诊断和处理方式。 在医学领域,没有转载 2014-03-06 16:34:27 · 369 阅读 · 0 评论 -
多数据源的MapReduce作业(二)--基于Distributed的复制联结
多数据源在reduce侧做join操作,效率不会太高。我们首先会让所有的数据在网络上重排,然后在conbine联结过程中丢弃了大部分的数据。如果我们在mapper侧就去除不必要的数据,联结会更有效率。 map阶段执行联结主要障碍是一个mapper正在处理的记录要能访问到另外表的所有数据,这样就能保证map侧联结可以正常工作。 引入hadoop的DistributedCache转载 2014-03-03 21:29:18 · 330 阅读 · 0 评论 -
多数据源的MapReduce作业(一)--Reduce侧的联结
场景:实现多表的join操作。 select customers.*,orders.* from customers join orders on customers.id =orders.id 使用DataJoin软件包进行实现联结操作。 扩展三个类: 1、DataJoinMapperBase 2、DataJoinReducerB转载 2014-03-03 20:18:05 · 735 阅读 · 0 评论 -
多数据源的MapReduce作业(三)--map侧过滤后在reduce侧联结
在某些情况下,SemiJoin抽取出来的小表的key集合在内存中仍然存放不下,这时候可以使用BloomFiler以节省空间。 BloomFilter最常见的作用是:判断某个元素是否在一个集合里面。它最重要的两个方法是:add() 和contains()。最大的特点是不会存在false negative,即:如果contains()返回false,则该元素一定不在集合中,但会存在一定的true n转载 2014-03-03 20:42:55 · 338 阅读 · 0 评论 -
Storm数据流模型的分析及讨论
本文首先介绍了Storm的基本概念和数据流模型,然后结合一个典型应用场景来说明Storm支持Topology之间数据流订阅的必要性,最后对比了Storm与另一个流处理系统在数据流模型上的区别之处。 Storm基本概念 Storm是一个开源的实时计算系统,它提供了一系列的基本元素用于进行计算:Topology、Stream、Spout、Bolt等等。 在Storm中,一个实时应用的计算任务被打转载 2014-02-28 11:20:44 · 694 阅读 · 0 评论 -
Hadoop集群系列7:WordCount运行详解(1)
1、MapReduce理论简介 1.1 MapReduce编程模型 MapReduce采用"分而治之"的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单地说,MapReduce就是"任务的分解与结果的汇总"。 在Hadoop中,用于执行MapReduce任务的机器角色有两个:一个是JobTracker;另转载 2013-12-15 09:54:32 · 450 阅读 · 0 评论 -
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 · 580 阅读 · 0 评论 -
MapReduce工作原理
JobClient的runJob()方法是用于新建JobClient实例和调用其submitJob()方法。提交作业后,runJob()将每秒轮询作业的进度,如果发现与上一个记录不同,便把报告显示到控制台。作业完成后,如果成功,就显示作业计数器。否则,导致作业失败的错误会被记录到控制台。 1、向jobtracker请求一个新的作业ID(通过Jobtracker的getNewJobId())转载 2013-12-12 18:01:42 · 357 阅读 · 0 评论 -
MapReduce数据流(三)
额外的MapReduce功能 图4.6 插入了Combiner的MapReduce数据流 Combiner:前面展示的流水线忽略了一个可以优化MapReduce作业所使用带宽的步骤,这个过程叫Combiner,它在Mapper之后Reducer之前运行。Combiner是可选的,如果这个过程适合于你的作业,Combiner实例会在每一个运行map任务的节点上运行。Combiner会接转载 2013-12-11 14:18:53 · 391 阅读 · 0 评论 -
MapReduce数据流(二)
输入块(InputSplit):一个输入块描述了构成MapReduce程序中单个map任务的一个单元。把一个MapReduce程序应用到一个数据集上,即是指一个作业,会由几个(也可能几百个)任务组成。Map任务可能会读取整个文件,但一般是读取文件的一部分。默认情况下,FileInputFormat及其子类会以64MB(与HDFS的Block默认大小相同,译注:Hadoop建议Split大小与此相同转载 2013-12-11 14:17:51 · 366 阅读 · 0 评论 -
MapReduce数据流(一)
在上一篇文章中我们讲解了一个基本的MapReduce作业由那些基本组件组成,从高层来看,所有的组件在一起工作时如下图所示: 图4.4高层MapReduce工作流水线 MapReduce的输入一般来自HDFS中的文件,这些文件分布存储在集群内的节点上。运行一个MapReduce程序会在集群的许多节点甚至所有节点上运行mapping任务,每一个mapping任务都是平等的:mappers没转载 2013-12-11 14:16:34 · 376 阅读 · 0 评论 -
MapReduce:详解Shuffle过程
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里转载 2013-12-11 14:35:11 · 301 阅读 · 0 评论 -
mapreduce 作业优化
map阶段优化 参数:io.sort.mb(default100) 当maptask开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘。 而是会利用到了内存buffer来进行已经产生的部分结果的缓存, 并在内存buffer中进行一些预排序来优化整个map的性能。 每一个map都会对应存在一个内存buffer,map会将已经产生的部分结果先写入到该buffer中, 这个转载 2014-03-06 16:33:12 · 448 阅读 · 0 评论