草庐IT

Iterator-reducer

全部标签

hadoop - map-reduce 中不同组件/ Action 的执行顺序

map-reduce中Action/组件的执行顺序是什么-Mapper-->Combiner-->Shuffling/Sorting-->Partitioner-->Reducer顺序一样吗?​​? 最佳答案 这个过程几乎是正确的,但让我们深入了解它。第一个Map阶段将从运行map开始。一旦map处理了输入,它会在保存到本地文件系统之前进行排序,这被称为sort然后copy到本地文件系统,接下来这个数据将被复制到reducer这是shuffle阶段。由于数据已经在每个mapper输出中排序,它根据每个到达reducer所在节点的键执

java - 何时在 Hadoop Map-Reduce 中使用 NLineInputFormat?

我有一个基于文本的输入文件,大小约为25GB。在该文件中,一条记录由4行组成。每条记录的处理都是相同的。但是在每条记录中,四行中的每一行都以不同的方式处理。我是Hadoop的新手,所以我想要一个指导,在这种情况下是使用NLineInputFormat还是使用默认的TextInputFormat?提前致谢! 最佳答案 假设您有以下格式的文本文件:2015-8-02error2014blahblahblahblah2015-8-02blahblahbalherror2014你可以使用NLineInputFormat.使用NLineInp

hadoop - 让多个 reducer 在 HDFS 中创建多个输出文件

如果我有多个reducer,输出会保存为多个文件吗?如果我有job.setNumReduceTasks(4),输出会写入4个不同的文件吗? 最佳答案 在map-reduce作业中,如果设置4个reducer来实现reducer作业。通过这样做,最终输出将生成4个部分文件。像part-r-00001、part-r-00002、part-r-00003、part-r-00004.希望这能澄清您的疑虑。 关于hadoop-让多个reducer在HDFS中创建多个输出文件,我们在StackOve

hadoop - 为整个 Mapper/Reducer 定义一个可写的

我在某处读到如果我们在创建Mapper/Reducer时定义输出可写项可能会提高性能,并且在Mapper/Reducer中我们应该只设置可写项的值而不是为每个输出记录创建可写项。例如(伪代码):IntWritableidWritable=newIntWritable();map(){idWritable.setValue(outputValue);emit(idWritable);}比以下更优化:map(){IntWritableidWritable=newIntWritable(outputValue);emit(idWritable);}这是真的吗?在创建将用于所有输出记录的Map

java - MapReduce reducer 错误输出

我有一个包含以下输入的大型TSV文件:Site1Tag1Site1Tag34Site1Tag8Site2Tag75Site2Tag54Site2Tag8Site3Tag24Site3Tag34Site3Tag1...我想在hadoopMapReduce的帮助下找到输入中所有站点之间的相似站点对以及每对站点中相似标签的数量。呈现部分输入的输出:Site1Site21//Site1issimilartoSite2with1tag(Tag8)Site1Site32//Site1issimilartoSite3with2tag(Tag1andTag34)Site2Site11Site3Site

hadoop - Mapreduce 中可以用combiner 代替reduce 吗?

我们可以在Mapreduce作业中使用combiner代替reduce吗?如果没有,我们可以用什么来代替mapreduce作业中的reducer? 最佳答案 严格来说,不是。组合器只有在至少有一个reducer被调用时才会被调用。当没有reducer时,作业停止在map阶段,省略了对map任务输出的本地排序。组合器也需要这种排序(它们实际上是本地reducer)。所以,没有reducer=>没有组合器。但是,如果您使用映射器内聚合,有时可以模拟组合器的操作。例如,您可以将来自映射器的wordcount结果存储在本地数据结构中,在每个

java - Hbase 映射减少 : how to use custom class as value for the mapper and/or reducer?

我正在尝试熟悉Hadoop/HbaseMapReduce作业,以便能够正确编写它们。现在我有一个Hbase实例,其中包含一个名为dns的表,其中包含一些DNS记录。我试图制作一个简单的唯一域计数器来输出文件并且它有效。现在,我只使用IntWritable或Text,我想知道是否可以为我的Mapper/Reducer使用自定义对象。我试着自己做,但我得到了Error:java.io.IOException:Initializationofallthecollectorsfailed.Errorinlastcollectorwas:nullatorg.apache.hadoop.mapre

nosql - Hadoop Map/Reduce - 简单使用示例来执行以下操作

我有MySQL数据库,我在其中存储以下BLOB(包含JSON对象)和ID(用于此JSON对象)。JSON对象包含很多不同的信息。比如,“城市:洛杉矶”和“州:加利福尼亚”。目前大约有50万条这样的记录,但它们还在增长。而且每个JSON对象都很大。我的目标是在MySQL数据库中进行搜索(实时)。比如说,我想搜索所有具有“州”到“加利福尼亚”和“城市”到“旧金山”的JSON对象。我想利用Hadoop来完成这项任务。我的想法是会有“工作”,它从MySQL中获取100条记录(行),根据给定的搜索条件验证它们,返回符合条件的那些(ID)。优点/缺点?我知道有人可能认为我应该为此使用简单的SQL功

exception-handling - 如何处理在 map/reduce 期间死亡的数据节点

当map/reduce使用的数据节点出现故障时会发生什么?不应该将作业重定向到另一个数据节点吗?我的代码应该如何处理这种异常情况? 最佳答案 如果datanode宕机,运行在该节点上的任务(假设您也将其用作tasktracker)将失败,这些失败的任务将被分配给其他tasktracker以重新执行。在死数据节点中丢失的数据block将在其他数据节点中可用,因为将跨集群复制数据。因此,即使数据节点出现故障,除了重新执行失败任务的非常短暂的延迟外,不会有任何损失。所有这些都将由框架来处理。您的代码无需担心这一点。

hadoop - 将普通的java程序转换为map reduce

我想编写一个Java包装器,它将“兼容程序”转换为mapreduce形式,以供Hadoop框架执行。我知道我的问题很含糊。但这是我打算做的。输入一个java程序。用户将指定的哪一部分程序将由mapreduce执行。这个java程序将是由我的程序输入,它将提供等效的mapreduce程序到hadoop。我被困在几点上。每个类(class)的Mapreduce程序都不同。我要怎么走概括它?从我应该开始的地方开始。解决这个问题的方法应该是什么?欢迎提出任何建议。这将帮助我决定进一步的方向。 最佳答案 一般来说是不可能的,并不是所有的程序都