草庐IT

reducer-combiner

全部标签

hadoop - 如何知道 yarn cluster 中可用的 reducer 插槽容量

我正在从Hadoop1.0迁移到支持YARN的集群。在1.0中运行临时作业时,我们过去常常根据作业跟踪器中报告的可用性指定reducer的数量,以加快处理速度。现在,在YARN的“所有应用程序”Web链接中,我们看不到任何此类有关可用性的列/信息。是否有任何配置文件或在网络链接中我们可以获得此信息? 最佳答案 Yarn中没有更多的插槽。相反,一切都取决于使用/需求的内存量。您可以配置yarn.nodemanager.resource.memory-mb和yarn.nodemanager.resource.cpu-vcores来控制任

java - 如何将 Hadoop Reducer 的最终输出写入文本文件?

我是Hadoop新手。我试图修改WordCount示例以执行以下任务(将键设置为第二个元素,将第四个和第五个元素设置为该键对应的值,然后根据键值将它们组合在一起并编写最终的结果到一个文本文件中):Input.txt:a:b:c:d:e:fg:h:i:j:k:lm:b:n:o:p:qOutput.txt:b:d:o:e:ph:j:k这是我的代码:publicclassTest{publicstaticclassMapextendsMapReduceBaseimplementsMapper{privateTextword=newText();publicvoidmap(LongWritab

java - Hadoop自定义输出格式,所有reducer什么时候结束?

我正在为hadoop构建自定义输出格式,想知道输出格式中是否有一种方法可以知道所有缩减程序(RecordWriters)何时完成?为了知道一个RecordWriter完成,可以使用RecordWriter的close方法,但是当所有RecordWriter完成时执行一些清理呢? 最佳答案 您可以使用驱动程序本身进行最后的清理,而不是依赖于OutputFormat。我怀疑它是否真的提供了这样的功能(api)。finalize方法可能是最后的手段,但根本不可取。Job的waitForCompletion方法仅在作业完成后返回。所以简单地

hadoop - 我可以为每个节点定义不同的 map 和 reduce 插槽吗?

我想知道是否可以为hadoop集群中的每个节点定义不同数量的槽。例如:tasktracker1:2个map和2个reducetasktracker2:1个映射和1个缩减等等……或者我必须为集群中的所有节点设置槽数非常感谢,,注意:我使用hadoop版本:1.2.1,因为它是最新的稳定版本,但如果有任何版本可以做到这一点,请告诉我 最佳答案 看看mapreduce.tasktracker.map.tasks.maximum和mapreduce.tasktracker.reduce.tasks.maximum。它们都在mapred-si

hadoop - Mapper Combiner patitioner shuffle/sort 顺序

我在DefiniteGuide:Hadoopinpg206中有以下文字。在写入磁盘之前,线程首先将数据划分为对应的分区到他们最终将被发送到的reducer。在每个分区内,后台线程按键执行内存中排序,如果有组合器功能,它在排序的输出上运行。运行combiner函数可以得到更多紧凑的map输出,因此写入本地磁盘和传输到的数据较少reducer。那么有了这个理解,我可以排序为Mapper,partitioner,shuffle/sort,Combiner的顺序吗? 最佳答案 我写了一篇关于此的好文章:http://0x0fff.com/h

python - 如何使用 Python 在 MapReduce 中的 reducer 中输出键值对,以便 1 小时内的时间结束?

我有一种情况需要处理一个非常大的文本文件,格式如下:ID\ttime\tduration\tDescription\tstatus我想利用MapReduce来帮助我处理这个文件。我知道MapReduce基于键值对工作。Mapper将输出键和一些值,而MapReduce将确保所有相同的键最终都在1个reducer中。我想要在reducer中结束的是时间间隔在1小时以内的行。然后在reducer中,我想访问所有其他信息以及ID、持续时间、状态来做其他事情。所以我猜想输出的值是一个列表还是什么?我有一些Python代码来处理输入数据。映射器.py#!/usr/bin/envpythonimp

file - java eclipse hadoop map reduce程序无法访问我存储在hdfs中的文件

我的javaeclipsehadoopmapreduce程序显示无法定位输入文件的错误。我已经使用hadoop命令通过终端将文件复制到hadoop目录。我可以在javaeclipsedfs位置看到这些文件。并且还在终端中使用命令hadoopdfs-ls。当我创建一个普通文件夹(不是hdfs)时,问题就解决了。但是随后程序正在从本地文件系统访问文件。我已经在redhat服务器32位上安装了hadoop1.2.1,使用javaeclipseluna,我已经包含了hadoop插件和来自hadoop库的外部jar文件。输入和输出路径通过运行时参数给出 最佳答案

hadoop - hadoop把mapper、partitioner、combiner的输出文件存放在哪里?

我在伪分布式hadoop设置上运行mapreduce作业。我在哪里可以找到映射器、分区器和组合器的输出文件?有没有办法检查每个操作的输出? 最佳答案 MapReduce中的中间输出存储在运行任务的节点上的本地临时存储中(而不是在HDFS中)。您可以在Hadoopconf中查找本地临时目录所在的位置,然后逐个节点地手动检查它们。一般来说,可能有更好的方法通过日志消息或计数器来完成您认为您想做的事情。您可以做的另一件事是关闭reducer,以便您的Mappers直接写入HDFS,以便您可以检查它。

java - 如何为 map reducer 作业在 java 中为 hadoop 输入自定义选择列读取

Hadoop新手,我想了解Hadoop如何读取文件输入:我能够使用下面的代码从2列(键/值)输入文件运行Hadoop作业:但是如果我有5列并且我想要的(键/值)是A&E(而不是A&B)我需要准确修改哪个函数呢?publicclassInverterCounterextendsConfiguredimplementsTool{publicstaticclassMapClassextendsMapReduceBaseimplementsMapper{publicvoidmap(Textkey,Textvalue,OutputCollectoroutput,Reporterreporter)

hadoop - 哪种方法阻止 reducer 在 hadoop yarn 中启动实际的 reduce 阶段?

我是hadoopyarn的新手,希望reducers在完成所有映射之前开始实际的缩减过程。我试图找出调用reducer但找不到的类。任何人都可以在这方面帮助我吗? 最佳答案 在所有映射器完成之前,reducer只能开始收集映射器的输出。这称为shuffle阶段。但是,它们无法启动sorting和reduce阶段,因为它们需要在开始工作之前拥有ALLmap输出记录在他们。原因很简单:想象一下wordcount示例,您想要计算一个词的出现频率。在reduce阶段,如果您在获取所有映射器的输出(即一些计数是缺少这个词),那么,你可能会给出