草庐IT

reduced_bitmap

全部标签

hadoop - 如何在级联中强制 reducer ?

获得一些只有reducer而不是mapper才有的好处。 最佳答案 在Google网上论坛中找到我的答案:使用GroupBy,在执行分组时,它总是会使用reducer:previousPipe=newGroupBy(previousPipe);//thisdoesaGrouponFields.All减少文件数量(耦合度较低的另一种选择)previousPipe=newGroupBy(previousPipe,newFields("rand"),newRandonNumGen(Fields.Args));其中newRandonNumG

hadoop:在伪分布式环境下有多个reducer?

我是hadoop的新手。我已经在伪分布式模式下成功配置了一个hadoop设置。我希望有多个缩减程序,选项为-Dmapred.reduce.tasks=2(使用hadoop-streaming)。然而,仍然只有一个reducer。根据Google的说法,我确信mapred.LocalJobRunner将reducer的数量限制为1。但我想知道是否有任何解决方法来拥有更多的reducer?我的hadoop配置文件:[admin@localhoststring-count-hadoop]$cat~/hadoop-1.1.2/conf/core-site.xmlfs.default.nameh

eclipse - 无法在 Elastic map reduce 命令行工具中列出当前作业流程?

我已成功安装AmazonElasticMapReduce命令行工具。在列出当前作业流程时,使用以下命令$./elastic-mapreduce--list它抛出以下错误。Error:Requesthasexpired.Timestampdate:2013-07-09T02:48:00-07:00 最佳答案 检查时间戳(即)主节点时间、机器时间应该相等。那么只有你会得到正确的回应。您可以通过putty查看您的主节点实例的时间戳。 关于eclipse-无法在Elasticmapreduce命

optimization - 如何在 awk 中编写优化的 reducer

我有下面的awkreducer程序,它在计算键值对中的值时运行良好。#!/bin/awk-fBEGIN{FS="\t";}{A[$1]+=$2;}END{for(iinA){printf("%s\t%d\n",i,A[i])}}上面的reducer效果很好,有没有什么优化的写法...?输入:APPLE1APPLE11ORANGE1ORANGE1MANGO1BANANA1111ORANGE11APPLE1BANANA1输出:APPLE3BANANA2MANGO1ORANGE35 最佳答案 取决于您对优化的定义-您当前的解决方案是有限的

hadoop - 生成适当数量的 reducer 输出

我正在运行一个简单的mapandreduceHadoop作业。mapred.reduce.tasks属性已由Hadoop管理员在mapred-site.xml文件中设置。假设它是25。现在,我的工作只产生4个不同的key,所以25个part-r-xxxx文件中只有4个是非空的,其余的是空文件。我该如何防止这种情况?我只想要与生成的key数量一样多的输出文件(我事先不知道)。谢谢。 最佳答案 我建议使用LazyOutputFormat:LazyOutputFormat.setOutputFormatClass(job,TextOutp

hadoop - hadoop能否让mapper将部分数据发送给reducer,剩下的数据直接输出到HDFS?

正如标题所说,我有一个关于map-reduce的任务设计:经过思考,我认为只需要将部分数据(可能是10%的数据)送入reducer,剩下的数据直接输出到HDFS即可。然后最后,我只是合并了mapper和reducer的这两个输出文件(我必须得到一个关于这个总数据的统一文件或目录)。我认为,通过这样做,可以降低此任务运行的带宽成本。那么我的想法能实现吗?(我知道如何直接从mapper输出到HDFS,但这需要mapper既输出到HDFS又将数据发送到reducer) 最佳答案 一种解决方案是使用MultipleOutputs'swrit

hadoop - Map 输出格式与 hadoop 中的 reduce 输出格式不同

我希望Map的输出为SequenceFileOutputFormat,reduce的最终输出为TextOutputFormat。作业配置只允许指定setOutputFormatClass如何为map和reduce阶段设置不同的输出格式? 最佳答案 我不认为您可以为映射器和缩减器指定不同的输出格式,只是为了整体工作。您可以尝试一个选项,具体取决于您的处理,您可以让一个作业输出SequenceFileOutputFormat中的文件,然后另一个作业读取并处理它以将其转换为TextOutputFormat。

Java Hadoop - Reducer 在使用 Combiner 类时多次接收同一个键的不同值

我在HadoopJavaAPI(1.0.3)中编写了一个MapReduce作业。这项工作包括对我的数据中特定字段(X)的所有值求和,并创建其他字段的加权分布。输入:1field1_1field2_1field3_1...fieldX_12field1_2field2_2field3_2...fieldX_23field1_3field2_3field3_3...fieldX_3由于我的数据中的任何行都会发出一对,并且我需要使用单个reducer来汇总所有值,因此我想将相同的Reduce类设置为Combiner。总X求和:map输出:XfieldX_1XfieldX_2XfieldX_3

Hadoop - 将 reducer 编号设置为 0 但写入同一文件?

我的工作是计算密集型的,所以我实际上只使用Hadoop的分布函数,我希望我的所有输出都在1个文件中,所以我将reducer的数量设置为1。我的reducer实际上什么都不做。..通过将reducer的数量显式设置为0,我可以知道如何在映射器中进行控制以强制将所有输出写入同一个1输出文件吗?谢谢。 最佳答案 您不能在Hadoop中这样做。您的每个映射器都必须写入独立文件。这使它们变得高效(无争用或网络传输)。如果你想合并所有这些文件,你需要一个单一的reducer。或者,您可以让它们成为单独的文件,并在下载它们时合并这些文件(例如,使

hadoop - 在 Hadoop 二级排序中将键值路由到正确的 Reducer

我有三个reducer,我需要它们中的每一个都接收相同的key,如下所示:GOOG-Reducer0AAPL-Reducer1VMW-Reducer2在分区器中,getPartition()方法应返回一个int,指示reducer的索引(0,1,2)之一。我的getPartition()实现是:return((CompositeKey)key).getSymbol().hashCode()%numReduceTasks;但是这在这里不起作用是我得到的:intnumReduceTasks=3;System.out.println("GOOG".hashCode()%numReduceTa