草庐IT

reduced_bitmap

全部标签

hadoop - Map reduce 作业卡在 map 0% reduce 0%

我正在运行著名的wordcount示例。我有一个本地和prodhadoop设置。同样的例子在生产环境中工作,但在本地不工作。谁能告诉我应该寻找什么。工作陷入困境。任务日志是:~/tmp$hadoopjarwordcount.jarWordCount/testhistory/outputtest/testWarning:$HADOOP_HOMEisdeprecated.13/08/2916:12:34WARNmapred.JobClient:UseGenericOptionsParserforparsingthearguments.ApplicationsshouldimplementT

hadoop - 是否存在无法通过 map/reduce 解决的典型问题?

我正在尝试了解hadoop和map/reduce的界限,这将有助于了解一个我们知道map/reduce无法解决的重要问题或一类问题。如果改变问题的一个因素可以简化map/reduce,那肯定会很有趣。谢谢 最佳答案 我想到了两件事:任何需要实时/交互式/低延迟响应时间的东西。提交到Hadoop的任何作业都会产生固定成本。任何不是embarrassinglyparallel的问题.Hadoop可以处理许多需要数据之间存在一些简单相互依赖性的问题,因为记录是在减少阶段连接的。然而,某些图形处理和机器学习算法很难用Hadoop编写,因为有

java - Hadoop 中的 Mappers 和 Reducers 必须是静态类吗?

我试图在Hadoop中做一些简单的事情,发现在编写映射器和缩减器时,到处都被定义为静态的。我的任务将被分解成几个map零件和一个finalreduce.如果我想在其他工作中重用我的一个映射器怎么办?如果我将映射器类定义为内部static我可以在其他工作中使用它吗?此外,重要的问题可能需要更多和复杂的映射器,因此在维护时将它们全部放在一个巨大的文件中会变得很糟糕。有什么方法可以让映射器和缩减器作为常规类(甚至可能在单独的jar中)而不是作业本身? 最佳答案 您的问题是类必须是静态的,可以是静态的,还是可以是内部的,或者应该是内部的?H

java - 如何在 Hadoop Reduce 中获取当前文件名

我正在使用WordCount例如,在Reduce函数中,我需要获取文件名。publicstaticclassReduceextendsMapReduceBaseimplementsReducer{publicvoidreduce(Textkey,Iteratorvalues,OutputCollectoroutput,Reporterreporter)throwsIOException{intsum=0;while(values.hasNext()){sum+=values.next().get();}Stringfilename=((FileSplit)(.getContext())

java - 第一次使用Hadoop,MapReduce Job没有运行Reduce Phase

我编写了一个简单的mapreduce作业,它会从DFS中读取数据并在其上运行一个简单的算法。在尝试调试它时,我决定简单地让映射器输出一组键和值,而缩减器输出一组完全不同的键和值。我在单节点Hadoop20.2集群上运行这个作业。作业完成后,输出仅包含映射器输出的值,让我相信reducer没有运行。如果有人对我的代码产生这种输出的原因提供任何见解,我将不胜感激。我已经尝试将outputKeyClass和outputValueClass设置为不同的东西,以及将setMapOutputKeyClass和setMapOutputValueClass设置为不同的东西。目前注释我们的代码部分是我正

java - 如何访问 Reducer 中的 Mapper Counter 值?

我想访问reducer中的myCounter.my值:publicstaticclassMapextendsMapper{publicstaticenummyCounter{my};@Overridepublicvoidmap(LongWritablekey,Textvalue,Contextcontext){context.getCounter(myCounter.my).increment(1);context.write(newImmutableBytesWritable(),newImmutableBytesWritable());}}publicstaticclassRedu

hadoop - Cassandras Map Reduce 支持

我最近遇到了一个案例,其中Cassandra非常适合存储基于时间的事件,每个事件类型都有自定义的ttls(另一种解决方案是将它保存在hadoop中并手动进行簿记(ttls和其他东西,恕我直言,非常复杂想法)或切换到hbase)。问题是在没有Datastax企业版的情况下,cassandraMapReduce支持的开箱即用效果如何。他们似乎在CassandraFS上投入了很多,但我问自己是否正常的PigCassandraLoader得到积极维护并且实际上可以扩展(因为它似乎只是迭代切片中的行)。这是否适用于数百万行? 最佳答案 您可以

language-agnostic - Map Reduce 框架/基础设施

MapReduce是一种最近似乎受到很大关注的模式,我开始在我的一个专注于事件处理管道(iPhone加速度计和GPS数据)的项目中看到它的体现。我需要为这个项目构建大量的基础设施,事实上它超过了与之交互的逻辑代码的2倍。我构建的一些组件包括EventProcessors(带有输入和输出缓冲区、计时等)、EventListeners、聚合器和分阶段管道。这让我想到了mapreduce所需的“通用”基础设施是什么。由于我经常使用.Net,我可以看到框架和语言结构中内置的映射减少基础设施。函数式语言本身就支持这种范式。似乎每种语言都可以与mapreduce一起使用。甚至还有围绕该概念构建的语

hadoop - 如何直接将 mapper-reducer 的输出发送到另一个 mapper-reducer 而无需将输出保存到 hdfs

问题最终得到解决在底部查看我的解决方案最近我正在尝试运行MahoutinAction的第6章(list6.1~6.4)中的推荐系统示例。但是我遇到了一个问题,我已经用谷歌搜索了但找不到解决方案。问题来了:我有一对mapper-reducerpublicfinalclassWikipediaToItemPrefsMapperextendsMapper{privatestaticfinalPatternNUMBERS=Pattern.compile("(\\d+)");@Overrideprotectedvoidmap(LongWritablekey,Textvalue,Contextco

Hadoop 向所有 reducer 发送记录

如何将特定记录发送到我的所有reducer?我知道Partitioner类及其作用,但我没有看到任何简单的方法来确保将记录发送到所有reducer。基本上,Partitioner有这个方法:intgetPartition(K2key,V2value,intnumPartitions)我的第一个想法是让Partitioner和Mapper如下协作:Mapper保持输出记录的次数等于reduce任务的数量,Partitioner返回所有整数(从0到numPartitions-1),这样可以确保记录到达所有分区。还有其他更聪明的方法可以解决这个问题吗?例如,我为需要发送到所有分区的记录返回-