草庐IT

MAPREDUCE

全部标签

java - Hadoop MapReduce : context. 写入更改值

我是Hadoop的新手,正在编写MapReduce作业,我遇到了一个问题,它似乎是reducerscontext.write方法正在将正确的值更改为不正确的值。MapReduce作业应该做什么?统计总字数(intwordCount)计算不同单词的数量(intcounter_dist)统计以“z”或“Z”开头的单词数(intcounter_startZ)统计出现次数少于4次的单词(intcounter_less4)所有这些都必须在单个MapReduce作业中完成。正在分析的文本文件Hellohowzouzouzouzouhowareyou正确输出:wordCount=9counter_d

Hadoop 的默认分区器 : HashPartitioner - How it calculates hash-code of a key?

我试图了解MapReduce中的分区,我了解到Hadoop有一个默认的分区程序,称为HashPartitioner,分区程序有助于在决定给定键将转到哪个reducer时。从概念上讲,它是这样工作的:hashcode(key)%NumberOfReducers,where`key`isthekeyinpair.我的问题是:HashPartitioner如何计算key的哈希码?是简单地调用key的hashCode()还是此HashPartitioner使用一些其他逻辑来计算key的哈希码?谁能帮我理解一下? 最佳答案 默认的分区器简单地

javascript - MongoDB mapReduce 每分钟文档计数由附加类别字段分隔

我有一个具有以下架构的MongoDB集合:constMessageSchema={message:{type:String},category:{typeString,allowedValues:['a','b','c','d','e']},createdAt:{type:Date}}这些消息文档是在随机时间间隔创建的。我想创建一个图表所需的数据集,该图表绘制每个类别的每分钟消息数(计数)。输出将是一个包含键time、a.count、b.count、c.count、d.count和e.count的对象数组。生成的数据集应仅考虑上周的数据,而不是更早的数据。数据集可能非常大。我想我可以用

java - 在 MapReduce 中调用具有不同 InputFormatClass 的多个 Mapper

我想用三个Mapper编写代码,其中两个将处理".csv"文件,其他是".xml"。我已经为来自here的.xml格式编写了XmlInputFormat现在我想知道我应该输入什么job.setInputFormatClass(...);还有我应该添加哪个以提供文件路径。TextInputFormat.addInputPath(...)TextOutputFormat.setInputPath(...)或TextInputFormat.addInputPath(...)TextOutputFormat.setInputPath(...) 最佳答案

hadoop - 使用 MapReduce 查找非对称对

我正在尝试分析包含follower和followee对的社交网络数据。我想使用MapReduce(Hadoop)找到非对称对(A跟随B但B不跟随A)。然而,对于这对数据,我不确定mappers和onereducer应该如何处理数据,因为分离对将影响结果。谁能给我解释一下如何使用MapReduce从海量数据中找到非对称对?非常感谢。附注我希望有一种方法可以使用多个Mappers来解决此类问题,即使我可能只需要使用一个Reducer。 最佳答案 这是我解决问题的方法。(它有效,但它可能不是最佳解决方案。如果有人有更好的答案,请告诉我。)

apache-spark - Spark 独立设置中的内存使用情况

我有一个spark设置,其中有一个worker有6个核心。现在我向工作人员广播一个对象x。我有三个问题-对于mapreduce作业,将生成我的objx的6个副本还是x的单个副本将由所有核心共享?x的生命周期是什么,即;它什么时候会被摧毁。我问是因为这个对象x占用了大量内存。如果我从文件中读取对象,是否有其他方法可以在所有6个内核之间共享该对象。 最佳答案 广播数据在每个执行器(java进程)中传输和存储一次,而不是每个内核一次。换句话说,如果您只有一个节点,并且将spark.executor.instances设置为2,并将spar

java - java中mapreduce编程没有输出值

importjava.io.BufferedReader;importjava.io.FileReader;importjava.io.IOException;importjava.util.Date;importjava.util.HashMap;importjava.text.ParseException;importjava.text.SimpleDateFormat;importorg.apache.hadoop.fs.FileSystem;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Te

java - 没有集群的 Hadoop MapReduce - 这可能吗?

是否可以在没有集群的情况下运行HadoopMapReduce程序?我的意思是,出于教育目的,我只是想稍微摆弄一下map/reduce,所以我只想在我的计算机上运行几个MapReduce程序,我不需要将任何工作拆分到多个节点等...不需要任何性能提升或任何东西,正如我所说,仅用于教育目的。我是否仍需要运行VM来实现此目的?我正在使用IntelliJUltimate,我正在尝试运行简单的WordCount。我相信我已经设置了所有必要的库和整个项目,并且在运行时我得到了这个异常:Exceptioninthread"main"java.io.IOException:Cannotinitiali

amazon-web-services - 未设置 Pig 模式元组。不会生成代码

我在googlen-grams数据集上对pig运行了以下命令:inp=LOAD'linktofile'AS(ngram:chararray,year:int,occurences:float,books:float);filter_input=FILTERinpBY(occurences>=400)AND(books>=8);groupinp=GROUPfilter_inputBYngram;sum_occ=FOREACHgroupinpGENERATEFLATTEN(group)asngram,SUM(filter_input.occurences)/SUM(filter_input

hadoop - 我想知道有什么方法我只能在 MapReduce(Hadoop) 中选择每一行的最大值

我低于表示标题、月份和标题(键)和月份(键)组合的值(总和)的值。我只想在标题、月份和值中选择具有最高值的一行,例如,“Fly08(09,11)4或Go0645,正如您在我的实际输出中看到的那样。如果可能的话,请赐教。如果您有任何疑问,请告诉我,我会尽力澄清。Fly,07,1Fly,08,4Fly,09,4Fly,10,1Fly,11,4Fly,12,2GentleBen,05,2GentleBen,06,3GentleBen,07,2GentleBen,08,2GentleBen,09,2Germanaircraftgunsandcannons,11,1Go,04,20Go,05,2