草庐IT

mapreduce_shuffle

全部标签

hadoop - Hadoop Mapreduce 控制台输出说明

我是hadoop环境的新手。我已经设置了2节点集群hadoop。然后我运行示例mapreduce应用程序。(实际上是字数)。然后我得到这样的输出FileSystemCountersFILE:Numberofbytesread=492FILE:Numberofbyteswritten=6463014FILE:Numberofreadoperations=0FILE:Numberoflargereadoperations=0FILE:Numberofwriteoperations=0HDFS:Numberofbytesread=71012HDFS:Numberofbyteswritten=

hadoop - 在 mapreduce 中使用键值对的重要性是什么?

我是mapreduce的初学者。我到处都看到它只说明mapreduce使用键值对。但我没有找到使用键值对的明确原因。提前致谢!! 最佳答案 Hadoop主要是用来做数据分析的。在数据分析中,我们着眼于统计和/或逻辑技术来描述和说明、浓缩和重述以及评估数据。我们绝不修改数据。Hadoop处理结构化、非结构化和半结构化数据。与RDBMS不同,模式不是静态的。如果,我们要有静态模式,我们可以直接处理列而不是键和值。键和值不是数据的固有属性,而是由分析数据的人选择的。因此,要进行任何分析,我们必须指定我们要查找的内容(Key)及其值(val

java - Yarn MapReduce 作业死于奇怪的消息

我有Hadoop-Yarn集群,当我尝试运行hadoop示例时,我在容器日志中收到奇怪的错误消息:Error:Couldnotfindorloadmainclass1638我的Java版本是:javaversion"1.7.0_51"Java(TM)SERuntimeEnvironment(build1.7.0_51-b13)JavaHotSpot(TM)64-BitServerVM(build24.51-b03,mixedmode)在master上运行服务:593NodeManager373SecondaryNameNode745JobHistoryServer507Resource

hadoop - MapReduce 排列

有没有办法用MapReduce生成排列?输入文件:1title12title23title3我的目标:1,2title1,title21,3title1,title32,3title2,title3 最佳答案 由于文件将有n个输入,因此排列应该有n^2个输出。让n任务执行这些操作中的n是有道理的。我相信你可以这样做(假设只针对一个文件):将您的输入文件放入DistributedCache可以作为只读方式访问您的Mapper/Reducers。在文件的每一行上进行输入拆分(就像在WordCount中一样)。因此,映射器将收到一行(例如

hadoop - 在 Mapreduce 中,复制是否也适用于中间数据?

在Mapreduce中,我们称映射器产生的输出称为中间数据。是否也复制了中间数据?中间数据是临时的吗?什么时候会删除中间数据?它是自动删除还是我们需要明确删除它? 最佳答案 Mapper的溢出文件存储在运行Mapper的工作节点的本地文件系统中。类似地,从一个节点流向另一个节点的数据存储在运行任务的工作节点的本地文件系统中。这个本地文件系统路径由hadoop.tmp.dir默认情况下为'/tmp'的属性。作业完成或失败后,本地文件系统上使用的临时位置会自动清除,您无需执行任何清理过程,它由框架自动处理。

hadoop - 输入格式是否负责在 Hadoop 的 MapReduce 中实现数据局部性?

我正在尝试了解与Hadoop的Map/Reduce框架相关的数据局部性。特别是我试图了解哪个组件处理数据局部性(即它是输入格式吗?)Yahoo'sDeveloperNetworkPage指出“Hadoop框架然后使用来自分布式文件系统的知识将这些进程安排在数据/记录位置附近。”这似乎暗示HDFS输入格式可能会查询名称节点以确定哪些节点包含所需数据,并在可能的情况下在这些节点上启动映射任务。可以想象通过查询确定哪些区域正在为某些记录提供服务,可以对HBase采用类似的方法。如果开发人员编写自己的输入格式,他们会负责实现数据本地化吗? 最佳答案

hadoop - mapreduce 排序和洗牌如何工作?

我正在使用yelpsMRJob库来实现map-reduce功能。我知道mapreduce有一个内部排序和随机播放算法,它根据键对值进行排序。因此,如果我在map阶段后得到以下结果(1,24)(4,25)(3,26)我知道排序和洗牌阶段会产生以下输出(1,24)(3,26)(4,25)符合预期但是如果我有两个相似的键和不同的值,为什么排序和混洗阶段会根据出现的第一个值对数据进行排序?例如如果我有来自映射器的以下值列表(2,)(1,)(1,)预期的输出是(1,)(1,)(2,)但是我得到的输出是(1,)(1,)(2,)这个MRjob库是特定的吗?无论如何要停止这种基于值的排序??代码fro

hadoop - MapReduce 连续执行

我正在使用Hadoop将现有的时间序列数据库系统转换为MapReduce模型。数据库系统兼具历史和实时处理能力。到目前为止,我已经能够将批处理功能转换为Hadoop。不幸的是,当谈到实时处理时,我发现与MapReduce模型存在一些概念上的不一致。我可以编写自己的HadoopInputFormat接口(interface)实现,它将连续为映射器提供新数据,以便映射器可以处理并连续发出数据。但是,因为在所有映射器都完成执行之前不会调用任何reduce()方法,所以我的计算必然会卡在映射阶段。我看过一些提到mapred.reduce.slowstart.completed.maps的帖子,

java - 如何在 Hadoop Mapreduce 中使用 MultithreadedMapper 类?

我在新的Hadoop版本中遇到了MultithreadedMapper类,文档说它可以用来代替传统的(单线程)映射器类。但是我没有遇到任何使用这个新类的演示示例。另外,我会更乐意使用setNumberOfThreads()方法。使用这个的任何代码示例?提前致谢 最佳答案 给你的小代码片段:Configurationconf=newConfiguration();Jobjob=newJob(conf);job.setMapperClass(MultithreadedMapper.class);conf.set("mapred.map.

java - 如何在 Hadoop MapReduce 中将对象设置为 Map 输出的值?

在HadoopMapReduce中,对于中间输出(由map()生成),我希望中间输出的值是以下对象。MyObject{date:Datebalance:Double}我该怎么做。我应该创建自己的可写类吗?我是MapReduce的新手。谢谢。 最佳答案 您可以编写您可以作为映射器值发出的自定义类型。但是无论你想作为值发出什么,都必须实现可写接口(interface)。你可以这样做:publicclassMyObjimplementsWritableComparable{privateStringdate;privateDoubleba