草庐IT

reduce_ex

全部标签

java - 使用 hadoop reducer 在将批量写入操作写入 mongodb 时检查重复记录

我正在使用hadoopmap-reduce来处理XML文件。我直接将JSON数据存储到mongodb中。如何实现在执行BulkWriteOperation之前只将不重复的记录存储到数据库中?重复记录标准将基于产品图片和产品名称,我不想使用吗啡层,我们可以在其中为类成员分配索引.这是我的reducer类:publicclassXMLReducerextendsReducer{privatestaticfinalLoggerLOGGER=Logger.getLogger(XMLReducer.class);protectedvoidreduce(Textkey,Iterablevalues

hadoop - 如何编写查询以避免在选择不同和大小的 collect_set 配置单元查询中使用单个 reducer?

如何重写这些查询以避免在reduce阶段使用单个reducer?它需要永远,我失去了使用它的并行性的好处。selectid,count(distinctlocations)ASunique_locationsfrommytable;和selectid,size(collect_set(locations))ASunique_locationsfrommytable; 最佳答案 使用两个查询对count(distinctvar)有效:SELECTcount(1)FROM(SELECTDISTINCTlocationsasunique_

hadoop - 如何设置 Hive reduce 运算符,因为 reduce 运算符始终为 0

我正在尝试将数据上传到配置单元rc和orc文件,但reducer的数量始终为0。我尝试使用setmapred.reducer.tasks=1在配置单元中设置reducer,但它不起作用。我发现互联网上每个reducer的默认大小是1G,所以我尝试上传3G数据,这样reducer至少是2个。我需要做什么来减少运算符? 最佳答案 我需要有关查询的更多信息才能确定,但​​我的猜测是您正在运行的查询是仅映射作业,因此不需要任何缩减程序。您可以添加DISTRIBUTEBY语句以强制Hadoop使用缩减程序。例如,SELECTtxn_idFRO

java - 如何在 IntelliJ IDEA 中为 Hadoop 程序设置 multi-reducer?

我在Ubuntu14.04中使用IntelliJIDEA来测试我的hadoop程序。当我更改reducer的数量时,我使用以下代码:job.setNumReduceTasks(3)我在IDEA中使用buildartifacts构建一个jar文件并在linuxshell中输入hadoopjarxxx.jarMyClassintputoutput。输出显示3个文件(part-r-00000、part-r-00001、part-r-00002),完全是我的期待。但是,当我为了方便使用参数input/output/在IDEA中运行程序时,输出结果只有一个文件part-r-00000。所以我想知

perl - 将 Hadoop 流与 perl 结合使用以进行 map reduce

我想将hadoop流功能与perl脚本一起用作映射器和缩减器。我发现了thisexplanation这部分回答了我的问题,但是它不包含reducer为每个键一起处理所有值的功能。例如,mapper可能会提取对,reducer会输出每个产品的类别列表。这当然可以通过将所有reducer数据保存在内存中来实现(就像我之前提到的示例中那样),但在许多情况下这是不可扩展的。有没有办法让perl脚本一次获取每个键的所有值(就像普通的map-reduce作业一样)? 最佳答案 您可以使用cpan库Hadoop::Streamingsubredu

json - 如何使用 hadoop map-reduce 和 es-hadoop 将 json 索引到 elasticsearch?

我在HDFS中存储了大量数据,我们希望将其索引到Elasticsearch中。琐碎的想法是使用Elasticsearch-hadoop库。我遵循了thisvideo中的概念,这是我为这项工作编写的代码。publicclassTestOneFileJobextendsConfiguredimplementsTool{publicstaticclassTokenizerextendsMapReduceBaseimplementsMapper{privatefinalMapWritablemap=newMapWritable();privatefinalTextkey=newText("te

Hadoop 集群。 Map reduce 作业停留在 map 100% 和 reduce 0%

我是Hadoop新手。我尝试根据ApacheHadoopsite上给出的示例创建一个hadoop集群。.但是,当我运行mapreduce示例时,应用程序卡在map100%和reduce0%。请帮忙我已经使用Vagrant和Virtualbox设置了环境。创建了两个实例。我在一个实例中运行名称节点和数据节点,在另一个实例中运行资源管理器和节点管理器。mapred-siet.xml配置mapreduce.framework.nameyarnmapreduce.map.memory.mb1536mapreduce.map.java.opts-Xmx1024Mmapreduce.reduce.

hadoop - 如何编写 MapReduce Prog,其中 Reducers 的输出转到单个 Reducer

如何编写一个MapReduce程序,其中我的Mappers的输出转到Reducers,而Reducers的输出到另一个Reducer,但在这种情况下只有一个Reducer,所以输出的所有键值对都将转到相同的Reducer。 最佳答案 我认为您希望将多个reducer的输出直接输出到另一个reducer,这是不正确的。您将需要另一个mapreduce作业,将您的reducer输出传递给mapper并使用单个reducer获取单个输出文件。 关于hadoop-如何编写MapReducePro

python - 如何让 Reducer 根据键类型发出

作为this的后续行动问题,我有一个Mapper,它正在处理大量数据并将ID号作为值为1的键发出。每个键都有两个部分,由竖线分隔符分隔,例如:映射器发出:a|abc1b|efg1a|cba1a|abc1b|dhh1b|dhh1我想做的是让Reducer解析键,对于类型为“a”的每个键,即“a|abc”,我希望Reducer只发出重复项,但对于所有其他类型(例如键入'b',即'b|abc'),我希望Reducer发出所有内容,即使值仅为1。所以上面的数据会产生:a|abc2b|efg1b|dhh2在这种情况下,不会发出'a|cba1',因为它是'a'类型的键并且没有重复项。下面是我尝试过

java - 从 java map reduce 代码中跳过 header

我正在尝试获取csv文件的摘要,文件的第一行是标题。有没有一种方法可以使每个列的值及其标题名称作为Java代码中的键值对。例如:输入文件是这样的A,B,C,D1,2,3,45,6,7,8我希望映射器的输出为(A,1),(B,2),(C,3),(D,4),(A,5),....注意:我尝试使用覆盖Mapper类中的运行函数来跳过第一行。但据我所知,每次输入拆分都会调用运行函数,因此不适合我的需要。对此的任何帮助将不胜感激。这是我的映射器的样子:publicvoidmap(LongWritablekey,Textvalue,Contextcontext)throwsIOException,I