草庐IT

elastic-mapreduce

全部标签

mongodb - 在 Hadoop MapReduce(使用 Mongo Hadoop 连接器)之后,重复记录被写入 MongoDB

我们在AWSEMR上的Hadoop测试环境1个主节点2个从节点当我们提交一个小测试作业时,它会触发1个maptask。map任务完成后,将触发3个reduce任务。reduce任务完成后,我们的输出数据将写入Mongo集合。但是我们注意到,在某些情况下,输出中有重复的记录。这会导致我们的下游处理任务崩溃,因为它们不需要重复。我注意到的一件事是,其中一个reduce任务有时会被终止,然后由hadoop重新启动-如果它在将数据写入Mongo的过程中被终止,这会导致重复记录吗?有什么方法可以从日志中看出Mongohadoop连接器是否真的在向Mongo写入数据?有什么方法可以确保在提交给Mo

java - 如何在 Mapper 中更新 MapReduce 作业参数

我想更新我在Mapper类中工作时设置的参数(在Driver类中)。我试过,context.getConfiguration().set("arg","updatedvalue")映射器内部。它确实更新了它,但reducer的输出全为零。请帮忙。映射器:-publicclassRecMapextendsMapper{publicstaticTreeMapco_oc_mat=newTreeMap();publicstaticHashMapuser_scoring_mat=newHashMap();publicstaticTreeMapsorted_user_scoring_mat=new

hadoop - Output.collect mapreduce 似乎没有取正确的值?

我是Hadoop的新手,两天来我一直在努力弄清楚为什么output.collect没有收集正确的值。我自己解释一下:事实上,(为了简化起见)我有以下映射方法:publicvoidmap(LongWritablekey,Textvalue,OutputCollectoroutput,Reporterreporter)throwsIOException{try{ForXmlHandlingmessage=(ForXmlHandling)unmarshaller.unmarshal(newStringReader(value.toString()));MyObjectrow=XmlParse

java - Hadoop MapReduce 有条件地打印名称对

所以我想弄清楚这个MapReduce程序问题的逻辑,我不需要代码,只需要逻辑方面的帮助,因为我对MapReduce还是新手,我不太熟悉所有可能的解决方法一个问题。我尝试查找类似的程序,但没有成功。问题:给定一个名称列表(为简单起见,只考虑第一个字符)输入:A,BD,FP,EA,BA,CB,AE,P我需要使用MapReduce仅打印那些按字母顺序和相反顺序提到的对(按字母顺序)。所以输出将是:A,BE,P注意:打印的是E,P而不是P,E,因为它必须按字母顺序排列。有人能帮忙吗? 最佳答案 在Map-Reduce程序中,主要问题是:什么

java - 如果驱动程序崩溃,则终止 MapReduce 作业

我有一个驱动程序,它在Hadoop2.4.0上使用org.apache.hadoop.mapreduce.Job.waitForCompletion(boolean)启动MapReduce作业。我遇到的问题是,如果驱动程序在作业中途崩溃,作业将继续运行。如果驱动程序崩溃,有没有办法杀死启动的MapReduce作业?驱动程序是否崩溃不是我能控制的。我猜这需要客户端和作业定期相互轮询。API中是否有针对此的设置或方法? 最佳答案 您可以在yarnwebUI中找到您的applicationId(jobId),或者您可以输入yarnappl

mysql - 线程 "main"java.lang.IncompatibleClassChangeError : Found class org. apache.hadoop.mapreduce.JobContext 中的异常,但接口(interface)是预期的

我正在使用hadoop1.0.3和sqoop1.4.6。我正在尝试将一个表从MySQL导入到hdfs。我收到以下错误:Exceptioninthread"main"java.lang.IncompatibleClassChangeError:Foundclassorg.apache.hadoop.mapreduce.JobContext,butinterfacewasexpectedatorg.apache.sqoop.config.ConfigurationHelper.getJobNumMaps(ConfigurationHelper.java:65)atcom.cloudera.

java - 如何在 MapReduce hadoop 中使用 GeoLite 数据库?

我正在尝试编写一个MapReduce程序,我正在尝试使用GeoLite数据库来解析IP地址的位置。我不确定如何将数据库文件传递给映射器以及要使用哪些依赖项? 最佳答案 在MapReducehadoop中使用GeoLite数据库的一种方法是将数据库作为缓存文件传递,方法是使用:DistributedCache.addCacheFile(inputPath.toUri(),job.getConfiguration());您可以使用缓存文件将.mmdb文件传递​​给每个映射器。我用于使用GeoLite数据库的依赖项是:com.maxmin

java - 为什么我在 hadoop 的 mapreduce 中得到 3xx 重复项?

我正在使用hadoop的mapreduce从hdfs中读取一个文件,将其放入一个简单的解析器,然后将该解析器的输出写回到hdfs。我还没有reducetask。我想知道为什么我的输出文件中有大约300个重复项。这是我的map方法。publicvoidmap(LongWritablekey,Textvalue,OutputCollectoroutput,Reporterreporter)throwsIOException{FileSplitfsplit=(FileSplit)reporter.getInputSplit();Mainparser=newMain();StringdatFi

hadoop - mapreduce 中的多个文件

我是mapreduce程序的新手。我正在关注TomwhiteHadoop权威指南。我正在做天气数据程序,我想在其中找到每年的最高温度。我有4个1901、1902、1904、1905年的文件,每年一个文件(我每年制作一个文件)。如何在mapreducemaper程序中设置四个输入文件。Hadoop安装在伪分布式模式下。请帮助我。 最佳答案 如果您使用的是hadoop流媒体,请尝试以下操作:$HADOOP_HOME/bin/hadoopjar$HADOOP_HOME/hadoop-streaming.jar\-inputmyInputD

sorting - 在具有 "X"个映射器和 "Y"个缩减器的大型 MapReduce 作业中,排序/洗牌阶段将有多少个不同的复制操作

据我了解会有X+Y个复制操作,不对请指正谢谢 最佳答案 在最坏的情况下,每个reducer可能会从所有映射器中获取记录,假设它的键在所有可用的映射器中都存在。在最坏的情况下,这将为一个reducer提供X个副本。这将导致XY操作而不是X+Y。 关于sorting-在具有"X"个映射器和"Y"个缩减器的大型MapReduce作业中,排序/洗牌阶段将有多少个不同的复制操作,我们在StackOverflow上找到一个类似的问题: https://stackoverf