草庐IT

reducer-combiner

全部标签

Hadoop 似乎在对给定 reduce 调用的值进行迭代期间修改了我的关键对象

Hadoop版本:0.20.2(在AmazonEMR上)问题:我有一个在映射阶段编写的自定义key,我在下面添加了它。在reduce调用期间,我对给定键的值进行了一些简单的聚合。我面临的问题是,在reduce调用的值迭代期间,我的key发生了变化,我得到了那个新key的值。我的key类型:classMyKeyimplementsWritableComparable,Serializable{privateMyEnumtype;//MyEnumisasimpleenumeration.privateTreeMapsubKeys;MyKey(){}//forhadooppublicMyKe

hadoop: reducer 输出到另一个 reducer

如果我们想按相同的键(第一个reducer的输出)分组,是否可以将reducer的输出直接发送到另一个reducer有时在链接时我发现我正在使用一个映射器来读取输入并将其复制到输出。因此想知道idf是否可以将输出直接馈送到reducer 最佳答案 尽管您可以将map-reduce作业,甚至是映射器链接在一起;据我所知,您不能直接链接reducer。在内部,您可以使用ChainMapper链接映射器beforereducer和链映射器afterreducerwithChainReducer.

hadoop - 为什么 map 和 reduce 同时运行?

我是Hadoop的新手。我记得我从某个地方了解到,在Hadoop中,所有map函数都必须在reduce函数开始之前完成。但是当我运行这样的mapreduce程序时,我只是得到了打印输出:map(15%),reduce(5%)map(20%),reduce(7%)map(30%),reduce(10%)map(38%),reduce(17%)map(40%),reduce(25%)为什么它们并行运行? 最佳答案 在真正的Reduce阶段开始之前,Shuffle、Sort和Merge在Mappers不断完成时发生。这个百分比表明了这一点

hadoop - Hadoop 上理想的 reducer 数量是多少?

Hadoopwiki给出的计算reducer的理想数量是0.95或1.75*(nodes*mapred.tasktracker.tasks.maximum)但是什么时候选择0.95,什么时候选择1.75?决定这个乘数时考虑的因素是什么? 最佳答案 假设您的集群中有100个可用的reduce插槽。负载因子为0.95时,所有95个reduce任务将同时启动,因为有足够的reduce槽可用于所有任务。这意味着没有任务会在队列中等待,直到其余任务之一完成。当reduce任务“小”时,我会推荐此选项,即完成相对较快,或者它们都需要相同的时间,

hadoop - 组合器在哪里组合映射器输出 - 在 Map 阶段或 Map-reduce 作业中的 reduce 阶段?

我的印象是,组合器就像作用于本地map任务的reducer,即它聚合单个Map任务的结果,以减少输出传输的网络带宽。通过阅读Hadoop-Thedefinitiveguide3rdedition,我的理解似乎是正确的。来自第2章(第34页)组合器函数许多MapReduce作业受到集群上可用带宽的限制,因此尽量减少map和reduce任务之间传输的数据是值得的。Hadoop允许用户指定要在map输出上运行的组合器函数——组合器函数的输出构成reduce函数的输入。由于combiner函数是一种优化,Hadoop不保证为特定映射输出记录调用它的次数(如果有的话)。换句话说,零次、一次或多次

hadoop - 使用 Pig/Hive 进行数据处理而不是直接使用 java map reduce 代码?

(比DifferencebetweenPigandHive?Whyhaveboth?更基础)我有一个数据处理管道,用Hadoop上的多个Javamap-reduce任务编写(我自己的自定义代码,源自Hadoop的Mapper和Reducer)。它是一系列基本操作,例如连接、反转、排序和分组依据。我的代码涉及并且不是很通用。继续这种公认的开发密集型方法与使用多个UDF将所有内容迁移到Pig/Hive的优缺点是什么?哪些工作我不能执行?我会遭受性能下降(使用100sTB)吗?维护时我会失去调整和调试代码的能力吗?我能否将部分作业作为Javamap-reduce进行流水线处理,并将它们的输入

join - 运行 HIVE Join 查询时,Reducers 在 66.68% 时停止工作

尝试连接6个表,每个表中大约有500万行。尝试加入在所有表上按升序排序的帐号。Map任务成功完成,reducer在66.68%时停止工作。尝试了增加reducer数量等选项,还尝试了其他选项sethive.auto.convert.join=true;并设置hive.hashtable.max.memory.usage=0.9;并设置hive.smalltable.filesize=25000000L;但结果是一样的。尝试使用少量记录(如5000行),查询效果非常好。请建议可以在这里做什么以使其发挥作用。 最佳答案 66%的Redu

map - 解释什么是 Hadoop 和 Map/Reduce 的最简单方法是什么?

从高层次的角度解释NoSQL非常容易——它基本上是“键值”存储。当然有成千上万的次要和重要的东西,但一般来说它只是键值存储。解释Hadoop和Map/Reduce的最佳方式是什么?可能是一些“真实世界”的例子,即使是新手也可以很容易地进行比较?谢谢! 最佳答案 我最近找到了thisgreatarticle描述MapReduce:I’vebeenplanningonwritingabouttheGoogle’sMapReducealgorithmforsometimebutIcouldn’tfindagoodpracticalexam

xml - How to read compressed bz2 (bzip2) Wikipedia dumps into stream xml record reader for hadoop map reduce

我正在使用HadoopMapReduce对维基百科数据转储(以bz2格式压缩)进行研究。由于这些转储太大(5T),我无法将xml数据解压缩到HDFS中,只能使用hadoop提供的StreamXmlRecordReader。Hadoop确实支持解压缩bz2文件,但它会任意拆分页面并将其发送给映射器。因为这是xml,所以我们需要拆分为标签。有没有办法把hadoop自带的bz2解压和streamxmlrecordreader一起使用? 最佳答案 维基媒体基金会刚刚为HadoopStreaming接口(interface)发布了一个Inpu

Hadoop reducer 未被调用

全部我有简单的map/reduce实现。Mapper被调用并完成其工作,但reducer从未被调用。这是映射器:staticpublicclassInteractionMapextendsMapper{@Overrideprotectedvoidmap(LongWritableoffset,Texttext,Contextcontext)throwsIOException,InterruptedException{System.out.println("mapper");String[]tokens=text.toString().split(",");for(intidx=0;idx