草庐IT

Iterator-reducer

全部标签

java - reducer 可以在 Hadoop 中包含实例变量吗?

我在网上看到关于Reducer有实例变量的例子publicstaticclassMyReducerextendsReducer{privateTreeMapcounts=newTreeMap();publicvoidreduce(IntWritablekey,Iterablevalues,Contextcontext)throwsIOException,InterruptedException{/*populateTreeMap*/}}如果MyReducer对象的一个​​实例用于减少多个键,那么我们应该在某处清除count。我们应该在哪里做这个?或者可能MyReducer的一个实例将用

用于大数据分析的 Hadoop Map Reduce 框架

我选择了关于HadoopMapreduce框架的研讨会主题,作为初学者,我对它的了解非常少。我的疑惑如下:-JobTracker、TaskTracker是作为软件还是硬件提供的?正如在其中一个示例中给出的那样,关于mapreduce已用于查找某些(比如3个)文件中所有单词的出现,那么你在哪里给出查询,即在mapreduce程序中“查找单词的出现”?map如何知道要做什么? 最佳答案 a)WhethertheJobTracker,TaskTrackercomesasasoftwareorHardware?两者都是软件。IE。在集群节点

java - 生成空输出文件的 Map Reduce 作业

程序正在生成空输出文件。谁能建议我哪里出错了。任何帮助将不胜感激。我尝试放置job.setNumReduceTask(0),因为我没有使用reducer,但输出文件仍然是空的。publicstaticclassPrizeDisMapperextendsMapper{intrating=0;TextCustID;IntWritabler;TextMovieID;publicvoidmap(LongWritablekey,Textline,Contextcontext)throwsIOException,InterruptedException{Stringline1=line.toStr

java - 在 Map Reduce 作业 Hadoop 中使用文件中的数据作为 Hash-Map

我有一个包含10,000(“小文件”)行的文件,其中包含键值小文件中的不同键可以具有相同的值。我必须对不同的文件(大文件)进行字数统计。购买我需要用(“小文件”)-inMapper中的值替换(“大文件”)中的键。只有在它在reducer中计数之后。我想在不使用pig/hive的情况下使用单个mapreduce作业来实现它。你能帮我指导我怎么做吗?小文件将在hdfs上,我不确定其他节点将如何从中读取-不认为它甚至被推荐-因为具有小文件的节点将不得不非常努力地向每个节点发送数据maptask。 最佳答案 你可以做一个mapside加入,

java - 在 reducer 的 for 循环中获取编译错误 "Can only iterate over an array or an instance of java.lang.Iterable"

在reducer的for循环中出现编译错误“Canonlyiterateoveranarrayoraninstanceofjava.lang.Iterable”。publicvoidreduce(Textkey,Iteratorvalues,OutputCollectorOutput,Reporterarg3)throwsIOException{//TODOAuto-generatedmethodstubintsum=0;for(IntWritableval:values){sum+=val.get();在上面的代码中,在“for(IntWritableval:values)”处出现编

java - Hadoop MapReduce : Strange Result when Storing Previous Value in Memory in a Reduce Class (Java)

如果我希望存储迭代器的当前值以与Reduce方法中迭代器的下一个值进行比较,Hadoop要求我克隆它而不是简单地将其引用分配给临时变量。我要将代码发布到我的reducer。你会看到两部分:Eclipse中测试的主要方法在Hadoop中执行的reduce方法你会注意到这两行代码是相同的,除了以下几点:main方法从我硬编码到其中的ArrayList获取Iterator,而reduce方法从mapper方法获取Iterator。main方法当然不会执行context.write。这是两者几乎共享的代码:MMIcurrentMMI=null;MMIpreviousMMI=null;Ultra

java - 在 Windows 上的 Hadoop 2.6.0 上运行 Map reduce 时出错

我使用本教程在我的Windows8.1上设置了一个单节点Hadoop2.6.0集群-https://wiki.apache.org/hadoop/Hadoop2OnWindows.所有守护进程都已启动并正在运行。我可以使用hadoopfs-ls/访问hdfs,但我没有加载任何东西,所以目前没有任何东西可以显示。但是当我运行一个简单的mapreduce程序时,我得到以下错误:log4j:WARNNoappenderscouldbefoundforlogger(org.apache.hadoop.metrics2.lib.MutableMetricsFactory).log4j:WARNP

hadoop - 泰兹。慢 reducer

我对TEZmapreduce作业有奇怪的行为。我正在尝试从Hive读取日志数据,按ID、日期和其他一些参数将其分成一些block,然后写入另一个Hive表。Map阶段工作得足够快,大约需要20分钟,然后reducer开始工作,458个reducer中的453个在接下来的20分钟内处理完所有数据。但最后5个reducer工作了大约1小时。发生这种情况是因为我的输入数据包含一些巨大的条目并且处理这些条目需要花费大量时间。这种情况的最佳做法是什么?我应该对hadoop/tez/hive进行一些调整以允许对最后的reducer进行某种并行处理,还是通过其他参数拆分输入数据以避免大量条目会更聪明

hadoop - 关于 map reduce 中洗牌的查询

运行映射器的节点处理如何知道它必须将一些键值输出发送到节点A(运行reducer)和一些到节点B(运行另一个reducer)?JobTracker是否在某个地方维护了一个reducer节点列表?如果是,它如何选择一个节点来运行reducer? 最佳答案 Mapper并不知道将数据发送到哪里,它专注于两件事:将数据写入磁盘。最初,map输出缓冲在内存中,一旦它达到某个阈值,它就会被刷新到磁盘。但就在进入磁盘之前,数据通过获取输出键的哈希值进行分区,输出键对应于它将被发送到的Reducer。一旦maptask完成,它将通知父任务跟踪器说

java - Reducer 中的 ArrayList 问题

您好,我正在reducer中执行一些计算,并尝试将数据加载到ArrayList中。当我在稍后的代码点对ArrayList执行get操作时,ArrayList中的所有对象都具有相同的值。publicArrayListtemp=newArrayList();//Thisisglobalvariable@Overridepublicvoidreduce(Key_classkey,Iteratorvalues,OutputCollectoroutput,Reporterreporter)throwsIOException{if(this.output==null){this.output=ou