jjzjj

Reducers

全部标签

hadoop - Spark :What is the ideal number of reducers

我的数据大约是300G。如果我使用Hadoop对其执行reduce作业,180个reduce插槽就可以了,队列中没有任务等待。如果我使用具有相同数量的reduce槽的Spark执行此操作,它会在洗牌阶段卡住,而如果我使用更多的槽(比如4000)就不会发生这种情况,但这将以低效率结束。有什么我可以做的,比如调整参数,以便我可以使用与hadoop相同的插槽?顺便说一句,我的集群有15个节点,每个节点有12个核心 最佳答案 ShuffleOperationinHadoopandSpark是关于该主题的好读物。一些引述:Eachmaptas

hadoop - 如何更改 hadoop mr 作业中的 reducer 输出文件名?

我有一个reducer脚本需要生成一堆xml文件。我想使用reducer键以编程方式设置文件名。我正在使用MultipleOutputs来完成如下操作。MultipleOutputsmos=newMultipleOutputs(context);mos.write(newText(key),newText(output),key+".xml");但输出文件名类似于key.xml-r-00000。如何从文件名中删除-r-*部分,以便它只是key.xml? 最佳答案 这里的-r-0000表示它是从reducer生成的。我们不能更改它,如

java - Hadoop Mappers 是否仅在本地执行?

我遇到这样一种情况,文件的整个block位于一台机器上,默认复制因子为1。在这种情况下,如果我在我的集​​群上启动hadoop,我觉得我所有的映射任务将只在一台机器上运行,因为block只存在于那台机器上。这样对吗?本地映射器任务执行是一个约束还是只是一个优先级?如果是,是否可以通过将block复制到本地磁盘来配置映射器任务也在其他机器上运行?第二个问题是,即使mapper任务只在一台机器上运行,通过复制mapper的中间数据在所有其他机器上启动reducer是否正确? 最佳答案 数据本地执行只是一个优先级,而不是约束条件。如果其他

Hadoop 映射器发出一个唯一的键。我可以在每个 map 之后执行 reducer 吗?

我的映射器发出'uniqkey'-'非常大的值(value)'对。我的reducer不知道key是唯一的。因此,reducer会等待所有映射器完成。我尝试使用组合器,但这对我来说不是一个简单的解决方案,因为我的reducer非常复杂。我的问题是如何在每个map之后执行reducer?不使用组合器。 最佳答案 如果您的key是唯一的,则无需减少它们。因此只需将reducer代码复制粘贴到mapper并将reducer编号设置为零。顺便说一句,有很多mapreduce作业不需要reduce步骤,所以这并不奇怪。

hadoop reduce函数没有执行?

我正在运行mapreduce程序,但我意识到虽然我写了一个reduce函数,但mapreduce并没有执行它。然后我尝试添加@Override,错误提示reduce函数没有覆盖任何super方法。作业配置信息如下preProcess.setJobName("GeneProcessingprogramfor100SNP");preProcess.setMapperClass(PreprocessMapper.class);preProcess.setReducerClass(PreprocessReducer.class);preProcess.setInputFormatClass(T

hadoop - Mapreduce 作业 : combiner without reducer

我注意到如果我将reducer的数量设置为0,组合器将无法工作。是否可以在没有reducer的情况下使用组合器?谢谢。 最佳答案 不,不是。即使使用指定的Reducer,也不能保证使用组合器。因此组合器是严格的优化,可以但不一定在Reducers之前调用。如果没有reducer,这些将永远不会被调用。 关于hadoop-Mapreduce作业:combinerwithoutreducer,我们在StackOverflow上找到一个类似的问题: https://

hadoop - 在同一台机器上的多个内核上运行 Map-Reduce 应用程序

我想在一台机器上运行mapreduce任务,我想使用我机器的所有核心。哪种方法最好?如果我以伪分布式模式安装hadoop,是否可以使用所有内核? 最佳答案 您可以使用属性ma​​pred.tasktracker.map.tasks.maximum和ma​​pred.tasktracker.reduce.tasks.maximum来增加映射器的数量/根据您的硬件规范,Reducers在TaskTracker上同时生成。默认情况下,它设置为2,因此最多2个map和2个reduce将在给定实例上运行。但是,要记住的一件事是,如果您的输入非

hadoop - 了解 hadoop 中的自定义分区程序

我现在正在学习分区器的概念。谁能给我解释一下下面的代码。我很难理解publicclassTaggedJoiningPartitionerextendsPartitioner{@覆盖publicintgetPartition(TaggedKeytaggedKey,Texttext,intnumPartitions){返回taggedKey.getJoinKey().hashCode()%numPartitions;}}这个taggedKey.getJoinKey().hashCode()%numPartitions如何确定为一个键执行哪个reducer?有人能给我解释一下吗?

hadoop - Hadoop 中的 Combiners , Reducers 和 EcoSystemProject

您如何看待本site中提到的问题4的答案?会是吗?答案是对是错问题:4InthestandardwordcountMapReducealgorithm,whymightusingacombinerreducetheoverallJobrunningtime?A.Becausecombinersperformlocalaggregationofwordcounts,therebyallowingthemapperstoprocessinputdatafaster.B.Becausecombinersperformlocalaggregationofwordcounts,therebyre

java - Hadoop 应用程序找不到 Reducer

我正在尝试制作一个mapreduce应用程序,它从Hbase表中读取并将作业结果写入文本文件。我的驱动程序代码如下所示:Configurationconf=HBaseConfiguration.create();Jobjob=Job.getInstance(conf,"mrtest");job.setJarByClass(Driverclass.class);job.setCombinerClass(reducername.class);job.setReducerClass(reducername.class);Scanscan=newScan();scan.setCaching(5