草庐IT

mapReduce

全部标签

java - 如何在 Hadoop MapReduce java API 中使用 Java 断言?

对于java程序,我们可以使用java-ea启用断言检查。它在hadoop命令中可用吗:hadoopjarsome-mapreduce-program.jarorg.foo.bar.MainJob...这可能吗? 最佳答案 假设Hadoop2+,你可以在你的mapred-site.xml中设置这个属性mapreduce.map.java.opts-ea或者,您可以尝试在客户端选项中导出它:exportHADOOP_CLIENT_OPTS="-ea${HADOOP_CLIENT_OPTS}"hadoopjarsome-mapreduc

hadoop - 在没有 mapred-site.xml 的情况下设置 hadoop mapreduce 大小

我在服务器上运行mapreduce作业,但不断收到此错误:Containerkilledonrequest.Exitcodeis143Containerexitedwithanon-zeroexitcode143Containerisrunningbeyondphysicalmemorylimits.Currentusage:1.0GBof1GBphysicalmemoryused;2.7GBof2.1GBvirtualmemoryused.Killingcontainer.当然我已经阅读了所有可能的资源并且我知道我需要在这些文件中设置配置:ma​​pred-site.xml\\yar

hadoop - Hadoop MapReduce 中的排序和混洗优化

我正在寻找基于Hadoop的研究/实现项目,我偶然发现了维基页面上发布的列表-http://wiki.apache.org/hadoop/ProjectSuggestions.但是,此页面最后一次更新是在2009年9月。因此,我不确定其中的一些想法是否已经实现。我对“MR框架中的排序和随机播放优化”特别感兴趣,它谈到“在随机播放之前组合机架或节点上的几个映射的结果。这可以减少查找工作和中间存储”。有没有人试过这个?这是在当前版本的Hadoop中实现的吗? 最佳答案 有组合器功能(如http://wiki.apache.org/had

java - 使用 Hadoop 将文本文件中的段落作为单个记录处理

稍微简化一下我的问题,我有一组带有“记录”的文本文件,这些记录由双换行符分隔。喜欢'multilinetext''emptyline''multilinetext''emptyline'等等。我需要分别转换每个多行单元,然后对它们执行mapreduce。但是,我知道使用hadoop代码样板中的默认wordcount设置,以下函数中value变量的输入只是一行,并且不能保证输入与前一个输入行连续。publicvoidmap(LongWritablekey,Textvalue,OutputCollectoroutput,Reporterreporter)throwsIOException;

hadoop - 为什么不为 hadoop TeraSort 映射器/ reducer

我计划在Hadoop0.20.2中的TeraSort类的映射器中插入一些代码。但是查看源码,找不到mapper实现的那段。通常,我们会看到一个名为job.setMapperClass()的方法,它指示映射器类。但是,对于TeraSort,我只能看到setInputformat、setOutputFormat之类的东西。我找不到调用mapper和reduce方法的位置?任何人都可以对此提供一些提示吗?谢谢,源码是这样的,publicintrun(String[]args)throwsException{LOG.info("starting");JobConfjob=(JobConf)ge

hadoop - 使用 Hadoop mapreduce 进行并行缩减

我正在使用Hadoop的MapReduce。我有一个文件作为map函数的输入,map函数做了一些事情(与问题无关)。我希望我的reducer获取map的输出并写入两个不同的文件。在我看来(我想要一个高效的解决方案),我的想法有两种:1个reducer知道识别不同的情况并写入2个不同的上下文。2个并行化简器,每个化简器都知道识别其相关输入,忽略另一个化简器,这样每个化简器都会写入一个文件(每个化简器将写入不同的文件)。我更喜欢第一个解决方案,因为它意味着我将只检查map的输出一次而不是并行两次-但如果第一个在某种程度上不受支持-我会很高兴听到第二个建议的解决方案。*注意:这两个最终文件应

hadoop - 使用 Oozie for Hadoop 的最佳实践

我使用Hadoop已有一段时间了。一段时间后,我意识到我需要链接Hadoop作业,并拥有某种类型的工作流。我决定使用Oozie,但找不到太多关于最佳实践的信息。我想听听更有经验的人的意见。最好的问候 最佳答案 学习oozie的最好方法是下载发行版附带的示例tar文件并运行它们中的每一个。它有一个mapreduce、pig、流式工作流示例以及示例协调器xml。首先运行正常的工作流,调试后,转为使用协调器运行工作流,以便您可以逐步执行。最后一个最佳实践是使工作流和协调器中的大部分变量可配置并通过component.properties文

java - Hadoop:应该映射什么,应该减少什么?

这是我第一次使用map/reduce。我想编写一个处理大型日志文件的程序。例如,如果我正在处理一个包含{Student、College和GPA}记录的日志文件,并且想按大学对所有学生进行排序,那么“map”部分是什么,“减少”部分是什么?尽管已经阅读了许多教程和示例,但我对这个概念有些困难。谢谢! 最佳答案 从技术上讲,HadoopMapReduce将所有内容都视为键值对;您只需要定义键是什么以及值是什么。map和reduce的签名是map:(K1xV1)->(K2xV2)listreduce:(K2xV2)list->(K3xV3

java - Hadoop - 为特定节点的 Mapper 中的每个 map() 函数创建类的单个实例

我在java中有一个类似这样的类用于hadoopMapReducepublicClassMyClass{publicstaticMyClassMapperextendsMapper{staticSomeClasssomeClassObj=newSomeClass();voidmap(ObjectKey,Textvalue,Contextcontext){StringsomeText=someClassObj.getSomeThing();}}}我只需要someClassObj的单个实例可用于map()函数每个节点。如何实现?如果您需要有关此主题的更多详细信息,请随时询问。谢谢!

hadoop - Hadoop Streaming 的向后兼容性

AFAK,HadoopStreaming只支持文本输入,这意味着数据是按行组织的。但是如果我们想要向后兼容,映射器代码将变得困惑,在用C++编写的同一个映射器程序中支持不同版本的日志行。之前考虑过avro或者protobuf,但是streaming模式好像不支持,是这样吗?还有其他解决办法吗? 最佳答案 其他输入/输出格式也可以是used以及Hadoop流。Avrosupport已为HadoopStreaming添加。参见AVRO-808&AVRO-830.还有这个Thread可能会有用。我找不到ProtoBuf的InputForm