草庐IT

reduced_bitmap

全部标签

hadoop - 指定 reducer 时的中间输出

我编写了一个HadoopMapReduce作业。当我在本地运行它时,我注意到如果我没有指定任何reduce任务,就会有一些临时文件写入输出目录。如果我指定reducer,则不会写入任何临时文件。这是正常行为吗?我希望看到写入的临时文件,否则这将意味着映射器试图在内存中执行所有操作,然后传输到内存中的reducer。这让我觉得难以置信。如果能深入了解映射器如何/何时/何地将中间输出写入文件系统,我们将不胜感激。谢谢 最佳答案 Map任务将它们的输出写入本地磁盘,而不是HDFS。map输出是中间输出:它由reduce任务处理以产生最终输

jar - 如何在我的 map/reduce 作业中使用更新版本的 hadoop/lib jar?

Hadoop目前在其lib文件夹中附带commons-httpclient-3.0.1.jar。如果我有一个需要commons-httpclient-3.1.jar的map/reduce任务,将这个jar捆绑到我的hadoopjar的lib文件夹中似乎是不够的(就像对任何普通的外部jar所做的那样)依赖项),因为hadoop似乎正在从其lib文件夹中加载以前的jar,而不是使用我提供的那个。不可能使用hadoop也使用的不同版本的jar? 最佳答案 如果一切都失败了,使用maven-shade-plugin重命名commons-ht

java - 每个 HBase 表一个 Reducer

基本上,我需要将数据路由到正确的Reducer。每个Reducer都将成为一个TableReducer。我有以下文件venodor1,user1,xxxx=nvenodor1,user1,xxxx=nvenodor2,user2,xxxx=nvenodor2,user2,xxxx=n我需要将其插入到以下hbase表中表供应商1:[user1]=>{数据:xxxx=n}[user2]=>{data:xxxx=n}表供应商2:[user1]=>{数据:xxxx=n}[user2]=>{data:xxxx=n}格式为[ROW_ID]=>{[FAMILY]:[COLUMN]=[VALUE]}每

python - 具有二进制可执行文件的 Hadoop/Elastic Map Reduce?

我正在使用hadoop流、python、matlab和elasticmapreduce编写分布式图像处理应用程序。我已经使用matlab编译器编译了我的matlab代码的二进制可执行文件。我想知道如何将其合并到我的工作流程中,以便二进制文件成为Amazon的弹性mapreduce处理的一部分?看来我必须使用Hadoop分布式缓存?代码非常复杂(而且不是我写的)所以现在不可能将它移植到另一种语言。谢谢 最佳答案 以下内容并不完全是对您的Hadoop问题的回答,但我忍不住要问您为什么不在Grid资源上执行处理作业?有用于在网格上执行计算

java - 连接来自 SequenceFileOutputFormat 的 reducer 输出

我有一份工作使用100个配置为setOutputFormat(SequenceFileOutputFormat.class);作业运行后,我可以通过以下方式组合所有零件文件吗?以下命令并让事情正常工作压缩?hadoopfs-cat输出/部分*>fullOutput如果不是,那么使用多个的首选方法是什么reducers,然后将它们的所有输出集中到一个文件中?非常感谢,--艺术 最佳答案 您使用的是什么压缩?对于某些编解码器,这肯定行不通。例如,Lzop编解码器在每个文件的开头都有标题,因此如果您只是加入文件,它们就会在其中散布标题。L

apache - 哈多普 : supporting multiple outputs for Map Reduce jobs

似乎Hadoop(reference)支持它,但我不知道如何使用它。我想:a.)Map-ReadahugeXMLfileandloadtherelevantdataandpassontoreduceb.)Reduce-writetwo.sqlfilesfordifferenttables为什么我选择map/reduce是因为我必须对驻留在磁盘上的超过100k(可能更多)xml文件执行此操作。欢迎大家提出更好的建议感谢任何解释如何使用它的资源/教程。我正在使用Python并且想学习如何使用streaming实现这一点谢谢 最佳答案 这

java - Hadoop:为什么一个狂写的reduce任务会超时?

我有一个Hadoopreduce任务,它分批读取其输入记录并进行大量处理,并为每个输入批处理写入大量输出。我有readHadoop认为写入输出是为了终止挂起任务的“进度”。然而,尽管不断写入大量输出,但我的任务仍会超时并被终止。那么:我如何才能知道Hadoop认为任务上次报告进度的时间?为什么我必须对每个context.write()调用context.progress()?有没有写作不算进步的情况?(例如,我的key是NullWritable。)我在CentOS5.7上使用ClouderaCDH3u1,如果这有什么不同的话。 最佳答案

Hadoop API : OutputFormat for Reducer

我对hadoopAPI完全困惑。(猜猜它一直在变化)如果我没记错的话,JobConf已被弃用,我们应该使用Job和Configuration类而不是从java运行mapreduce作业。似乎最近发布的hadoop1.0.0JobConf不再被弃用!所以我正在使用Job和配置类来运行mapreduce作业。现在,我需要根据map输出中的某些值将reducer输出文件放在文件夹结构中。我浏览了几篇文章,发现可以使用OutputFormat类来实现这一点,但我们在两个包中都有这个类:org.apache.hadoop.mapredandorg.apache.hadoop.mapreduce在

hadoop - Reducer 中的多个输出

我正在研究简单的mapreduce程序。我想在reducer之后为key中的每个不同单词创建不同的文件。例如,在执行Mapreduce之后我有类似的东西优先级1x2优先级1和2优先级1z2优先级2x​​2优先级2y2现在我想要在reduce阶段后使用不同的文件,比如Priority1和Priority2,它们根据优先级具有所有这些值。我正在使用java,想知道在reducer中应该写什么来获得这种输出?我只想知道这是否可能,或者如何解决或解决这个问题?我使用的是Hadoop0.20.203,因此多重输出不起作用。任何指针都会有所帮助。谢谢您的帮助!阿图尔 最

Hadoop - 仅用于 Reduce 的故障恢复

我有一个Hadoop作业正在运行,它已经完成了4天的map部分,现在它似乎在reduce阶段暂停(reducer已完成30%)我真的希望有一种方法可以只重新处理reduce部分,而不必重新处理长期运行的map部分,有什么建议吗?如果我只有一个reducer,情况可能会变得更糟。 最佳答案 Hadoop只会在您的情况下重新启动Reduce步骤。但是,如果您的作业失败,您不能跳过map步骤。在这种情况下,您应该将这两个阶段分成单独的作业,尤其是当您的映射器是计算密集型的时候。 关于Hadoo