草庐IT

hadoop - map 输出记录的数量少于 hadoop 中的组合输入记录

当我运行mapreduce时,我得到的组合输入记录大于映射输出记录?这真是奇怪。我不知道到底发生了什么?据我所知,map输出记录应该与输入记录完全相同。谁能帮我解决问题。提前致谢。这是一个真实世界的工作示例:Map-ReduceFrameworkMapinputrecords=112705844Mapoutputrecords=64841776Combineinputrecords=64842079Combineoutputrecords=409Reduceinputrecords=106Reduceoutputrecords=4 最佳答案

Hadoop 生态系统 - 在我的场景中使用什么技术工具组合? (详情见内)

这对某些人来说可能是一个有趣的问题:给定:SQLServer(RDBMS)中存储了2-3TB的数据,将其视为类似于Amazon的数据,即用户->他们看到了什么/点击查看->他们买了什么任务:制作一个推荐引擎(如亚马逊),向用户显示,购买此产品的客户也购买了此产品->如果你喜欢这个,那么你可能会喜欢这个->(Also)一种数据挖掘来预测future的购买习惯(数据挖掘)。依此类推,基本上是一个reco引擎。问题:由于数据量巨大(5-6年的用户习惯数据),我认为Hadoop是最终的解决方案。现在的问题是,要使用哪些技术工具组合?即,HDFS:UnderlyingFIlesystemHBAS

hadoop - 只有一个映射器的组合器,在 hadoop 中有两个映射器的情况下

我有两个映射器类,它们处理不同的输入,但它们的输出将采用相同的格式,并将进入同一个reducer。是否可以只为两个映射器类之一实现组合器? 最佳答案 对于组合器,如果您将HadoopMR设置为使用组合器,它将处理所有映射器的输出。您不能指定特定的映射器。也许可以考虑这两个选项:将组合器应用于所有输出-您将映射器的输出映射到通用类型,以便它们可以(合并?)由Reducers处理。考虑一下联合收割机是否可以正常工作,而不管数据来自哪个映射器。对这个想法的修改是在映射器输出的键或值中设置一个类型变量,并在组合中使用它来决定天气来做任何事情

hadoop - 如何禁用 hadoop 组合器?

在wordcount示例中,组合器明确设置在job.setCombinerClass(IntSumReducer.class);我想禁用组合器,以便组合器不处理映射器的输出。有没有办法使用MR配置文件来做到这一点(即无需修改和重新编译wordcount代码)?谢谢 最佳答案 假设这是你的命令行hadoopjaryour_hadoop_job.jaryour_mr_driver\command_line_arg1command_line_arg2command_line_arg3\-libjarsall_your_dependency

hadoop - apache pig 下的所有平均组合?

我刚开始使用apachepig进行开发。我在HDFSMeasurements.csv上存储了一个文件,其结构如下1;0x3333333333331091;21.2;67.5;2.1;2.0;12.2;15/04/201415:502;0x3333333333331091;21.2;67.4;2.1;12.0;8.5;15/04/201414:223;0x3333333333331091;21.2;67.4;2.1;18.0;7.2;15/04/201414:224;0x3333333333331091;21.2;69.5;2.1;19.0;3.2;15/04/201414:225;0x

java - 在 MapReduce 中组合聚类算法

对于我的大学项目,我最初想在MapReduce上实现一个组合聚类算法。我已经完成了KMeans。现在我的问题是:能否将任何其他聚类算法与MapReduce上的Kmeans相结合?如果是,是什么算法,过程是怎样的?如果无法合并,如何对现有KMeans进行增强? 最佳答案 您可以应用一种方法来智能地选择初始质心,而不是随机选择它们。有论文介绍了改进的K-Means算法。您可以引用其中的一个或多个并创建您自己的改进K-Means算法。 关于java-在MapReduce中组合聚类算法,我们在S

hadoop - 使用自定义组合器......它可能会被忽略?

我在主要...job.setMapperClass(AverageIntMapper.class);job.setCombinerClass(AverageIntCombiner.class);job.setReducerClass(AverageIntReducer.class);Combiner有不同的代码,但Combiner被完全忽略,因为Reducer使用的输出是Mapper的输出。我知道可能不会使用Combiner,但我认为当Combiner与Reducer相同时就是这种情况。我真的不明白能够创建自定义Combiner的意义,但系统仍然可以跳过它的使用。如果这不应该发生,那么

scala - 在 HDFS 上预组合表并在 Spark 中读取零混洗

上下文我有两个表,作为我的spark作业的一部分,我正在加入/联合分组,这在我每次运行作业时都会导致大量洗牌。我想通过一次存储联合分组数据来分摊所有作业的成本,并将已经联合分组的数据用作我的常规Spark运行的一部分以避免混洗。为了尝试实现这一点,我在HDFS中以Parquet格式存储了一些数据。我正在使用Parquet重复字段来实现以下架构(date,[aRecords],[bRecords])其中[aRecords]表示aRecord数组。我还使用通常的write.partitionBy($"date")在HDFS上按日期对数据进行分区。在这种情况下,aRecords和bRecor

java - Hadoop 将数据从映射器减少到组合器

我有一个文本输入文件,其中包含一个URL+可变数量的关键字。这看起来像:facebook.com社交新闻好友msn.com新闻邮件yahoo.com财经新闻我需要将其转换为如下输出:社交facebook.comnewsfacebook.commsn.comyahoo.comfriendfacebook.comyahoo.com财经我的映射器类如下所示:publicclassKeywordsMapperextendsMapper{privateTexturlkey=newText();@Overrideprotectedvoidmap(LongWritablekey,Textvalue,

java - 两个相等的组合键不会到达同一个 reducer

我正在使用MapReduce框架在Java中制作Hadoop应用程序。我只对输入和输出使用文本键和值。在减少到最终输出之前,我使用组合器执行额外的计算步骤。但我遇到的问题是键没有转到同一个reducer。我在组合器中创建并添加这样的键/值对:publicstaticclassStep4CombinerextendsReducer{privatestaticTextkey0=newText();privatestaticTextkey1=newText();publicvoidreduce(Textkey,Iterablevalues,Contextcontext)throwsIOExc