草庐IT

Mapreduce1

全部标签

java - 在 hadoop mapreduce 应用程序中访问来自其他文件系统的文件以及 hdfs 文件

我知道我们可以从普通的Java应用程序调用map-reduce作业。现在,我的map-reduce作业必须处理hdfs上的文件以及其他文件系统上的文件。在hadoop中,我们是否可以在访问其他文件系统的文件的同时,同时使用hdfs上的文件。这可能吗?所以基本上我的意图是我有一个大文件,我想把它放在HDFS中进行并行计算,然后将这个文件的block与一些其他文件(我不想放在HDFS中,因为它们需要)进行比较一次作为全长文件访问。 最佳答案 应该可以像其他任务一样从mapper/reducer任务访问非HDFS文件系统。需要注意的一件事

hadoop - Cloudera 管理器 : Where do I put Java ClassPath for MapReduce jobs?

我已经让Hadoop-Lzo在我的本地伪集群上愉快地工作,但是第二次我在生产中尝试相同的jar文件时,我得到:java.lang.RuntimeException:native-lzolibrarynotavailable库已验证在DataNode上,所以我的问题是:我在什么屏幕/设置中指定native-lzo库的位置? 最佳答案 对于MapReduce,您需要将条目添加到MapReduce客户端环境安全阀。您可以通过转到配置下的查看和编辑选项卡找到MapReduceClientSafety。然后在那边添加这些行:HADOOP_CL

hadoop - Oozie 协调员。如何将过去的数据提供给 mapreduce 作业?

我正在尝试创建Ooize协调器。问题是我已经有了等待使用oozie处理的暂存数据。想象一下这样的情况。当前日期是:01.03.2013(2013年3月1日)我确实有这些输入目录:/staging/landing/source/xvlr/2013/02/01/00(2013年二月一日,一天的第一个小时)/staging/landing/source/xvlr/2013/02/01/01/staging/landing/source/xvlr/2013/02/01/02/staging/landing/source/xvlr/2013/02/01/03/staging/landing/so

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