草庐IT

MPI_Reduce

全部标签

python - Map-Reduce/Hadoop 按整数值排序(使用 MRJob)

这是一个简单的Map-Reduce排序功能的MRJob实现。在beta.py中:frommrjob.jobimportMRJobclassBeta(MRJob):defmapper(self,_,line):""""""l=line.split('')yieldl[1],l[0]defreducer(self,key,val):yieldkey,[vforvinval][0]if__name__=='__main__':Beta.run()我使用文本运行它:112438424755610711可以使用:cat|pythonbeta.py现在的问题是假设键的类型为string(这里可能就

java - 在 reduce 函数的参数中将 HashSet<Text> 作为 Iterable<Text> 传递 - HADOOP

我有一个HashMap,我想通过重载run方法将它的值传递给hadoop中的reduce函数。reduce函数接受Iterable。有没有办法做到这一点?预先感谢您的帮助。 最佳答案 HashSet(如文章标题)已经是可迭代的。通过它。如果您按照帖子正文所述使用map,则可以通过任何合适的:yourMap.keySet();//setofKyourMap.valueSet();//setofVyourMap.entrySet();//setofMap.Entry 关于java-在redu

hadoop - map reduce 中的reducer 数量

我在MR的驱动类中设置了3个reducer。这意味着将创建三个分区..但是mapper只发出两个唯一的键,比如male和female。在这种情况下,Reducer和reduce函数将运行多少次? 最佳答案 你的问题有点含糊,但我可以对可能发生的情况提出两种解释:1。二级还原Reducer1减少所有男性结果Reducer2减少所有女性结果Resucer3减少Reducer1和2的输出。2。拆分作业Reducer1减少所有男性结果Reducer2减少了女性结果的前半部分Reducer3减少了女性结果的后半部分

hadoop map-reduce : how to deploy non-jar files

您好,当我使用hadoopjar..args..提交我的jar以进行map-reduce作业时,我想知道如何部署非jar文件。对于hadoop流,有--file选项来发送文件,对于spark,我们有--files但我在文档中找不到这样的选项。在提交hadoopmap-reduce作业时,是否可以将非jar文件与我的jar一起发送? 最佳答案 Applicationscanspecifyacommaseparatedlistofpathswhichwouldbepresentinthecurrentworkingdirectoryof

hadoop - Hadoop 集群上的 Hive/Map-Reduce 作业 : How to (roughly) calculate the diskspace needed?

以下用例:我对.gz压缩大小约为500GB的数据运行配置单元查询:selectcount(distinctc1),c2fromt1groupbyc2;此查询产生约2800个映射作业和约400个缩减作业。在设置具有20个实例(每个160GB实例存储)的Hadoop集群时,该工作将停止在97%map和21%reduceprogress,然后回落到94%map和19%reduceprogress,然后就没有任何进展了。我认为这是因为HDFS的磁盘空间已达到使用限制。也许我可以在当天晚些时候提供异常消息。如何:有没有办法根据正在处理的数据的输入大小粗略地预先计算所需的HDFS磁盘空间?请记住,

hadoop - 了解 Map-Reduce

所以这一直让我很困惑。我不确定map-reduce究竟是如何工作的,而且我似乎迷失在确切的事件链中。我的理解:MasterChunks文件并将它们作为(K1,V1)交给映射器Mappers将获取文件并执行Map(K1,V1)->(K2,V2)并将此数据输出到单独的文件中。这就是我迷路的地方。那么这些单独的文件是如何合并的呢?如果每个文件中的key重复怎么办?谁在进行合并?是主人吗?如果这一步所有的文件都进入Master,会不会是一个巨大的瓶颈?是否全部合并到一个文件中?现在文件重新分块并交给reducer了吗?或者,如果所有文件都直接转至reducer,那么在流程结束时(K3,V3)文

hadoop - 如何修改Map-Reduce的执行顺序?

原来的Map-Reduce执行链是:InputSplits-->Mapper-->[Sorting/Shuffling等]-->Reducer-->...现在我不希望输入拆分先到达映射器,而是转到其他一些新阶段(例如,我们可以将其称为预映射器,此类将由我自己创建)。所以新顺序将是:InputSplits->Pre-Mapper->Mapper->...我目前正在阅读源代码。但是,我仍然找不到任何线索(我应该接触哪些类(class))。欢迎任何建议。非常感谢:) 最佳答案 也许你应该看看链接映射器:ChainMapper

hadoop - map任务和reduce任务可以在同一个节点吗?

我是Hadoop新手,既然map节点和reduce节点之间的数据传递可能会降低MapReduce的效率,为什么不把maptask和reducetask放在同一个节点? 最佳答案 实际上,如果数据太“小”,您可以在同一个JVM中运行map和reduce。这在Hadoop2.0(又名YARN)和现在称为Ubertask中是可能的。来自伟大的“Hadoop:权威指南”一书:Ifthejobissmall,theapplicationmastermaychoosetorunthetasksinthesameJVMasitself.Thish

python - 无法在 Hadoop 中使用 python 运行 map reduce?

我在python中为字数统计程序编写了映射器和缩减器,效果很好。这是一个示例:echo"hellohelloworldherehellohereworldherehello"|wordmapper.py|sort-k1,1|wordreducer.pyhello4here3world2现在,当我尝试提交一个大文件的hadoop作业时,出现错误hadoopjarshare/hadoop/tools/sources/hadoop-*streaming*.jar-filewordmapper.py-mapperwordmapper.py-filewordreducer.py-reducerw

hadoop - hadoop map/reduce 可以通过拆分数据大小来加速吗?

我能否通过将输入数据拆分为更小的block来增加我的hadoopmap/reduce作业的执行时间?第一个问题:例如,我有1GB的输入文件用于映射任务。我的默认block大小是250MB。所以只有4个映射器将被分配来完成这项工作。如果我将数据分成10block,每block为100MB,那么我有10个映射器来完成这项工作。但是这样每一个splitpiece都会在存储中占用1个block,也就是说每个splitdatablock会浪费150MB。如果我不想更改存储的block大小,在这种情况下应该怎么做?第二个问题:如果我在映射作业之前拆分输入数据,它可以提高映射作业的性能。因此,如果我