草庐IT

glass-mapper

全部标签

java - 为简单的 hadoop mapreduce 作业运行两个 mapper 和两个 reducer

我只是想更好地理解使用多个映射器和缩减器。我想使用一个简单的hadoopmapreduce字数统计作业来尝试这个。我想为这个字数统计作业运行两个映射器和两个缩减器。有吗我需要在配置文件上手动配置,还是仅对WordCount.java文件进行更改就足够了。我在单个节点上运行这个作业。我正在运行这个作业$hadoopjarjob.jarinputoutput我已经开始了$hadoopnamenode-format$hadoopnamenode$hadoopdatanodesbin$./yarn-daemon.sh启动资源管理器sbin$./yarn-daemon.sh启动资源管理器I'mr

java - Hadoop 中的 Mappers 和 Reducers 必须是静态类吗?

我试图在Hadoop中做一些简单的事情,发现在编写映射器和缩减器时,到处都被定义为静态的。我的任务将被分解成几个map零件和一个finalreduce.如果我想在其他工作中重用我的一个映射器怎么办?如果我将映射器类定义为内部static我可以在其他工作中使用它吗?此外,重要的问题可能需要更多和复杂的映射器,因此在维护时将它们全部放在一个巨大的文件中会变得很糟糕。有什么方法可以让映射器和缩减器作为常规类(甚至可能在单独的jar中)而不是作业本身? 最佳答案 您的问题是类必须是静态的,可以是静态的,还是可以是内部的,或者应该是内部的?H

Java Hadoop : How can I create mappers that take as input files and give an output which is the number of lines in each file?

我是Hadoop的新手,我已经设法运行了wordCount示例:http://hadoop.apache.org/common/docs/r0.18.2/mapred_tutorial.html假设我们有一个包含3个文件的文件夹。我希望每个文件都有一个映射器,这个映射器将只计算行数并将其返回给缩减器。然后,reducer会将每个映射器的行数作为输入,并将所有3个文件中存在的总行数作为输出。所以如果我们有以下3个文件input1.txtinput2.txtinput3.txt映射器返回:mapper1->[input1.txt,3]mapper2->[input2.txt,4]mappe

java - 如何访问 Reducer 中的 Mapper Counter 值?

我想访问reducer中的myCounter.my值:publicstaticclassMapextendsMapper{publicstaticenummyCounter{my};@Overridepublicvoidmap(LongWritablekey,Textvalue,Contextcontext){context.getCounter(myCounter.my).increment(1);context.write(newImmutableBytesWritable(),newImmutableBytesWritable());}}publicstaticclassRedu

hadoop - 如何直接将 mapper-reducer 的输出发送到另一个 mapper-reducer 而无需将输出保存到 hdfs

问题最终得到解决在底部查看我的解决方案最近我正在尝试运行MahoutinAction的第6章(list6.1~6.4)中的推荐系统示例。但是我遇到了一个问题,我已经用谷歌搜索了但找不到解决方案。问题来了:我有一对mapper-reducerpublicfinalclassWikipediaToItemPrefsMapperextendsMapper{privatestaticfinalPatternNUMBERS=Pattern.compile("(\\d+)");@Overrideprotectedvoidmap(LongWritablekey,Textvalue,Contextco

java - 为什么将 Mapper 和 Reducer 类声明为静态的?

这可能表明我缺乏对Java的理解,但我想知道为什么在大多数MapReduce程序中映射器和缩减器类被声明为静态的? 最佳答案 当将mapper和reducer类声明为另一个类的内部类时,必须将它们声明为静态的,以便它们不依赖于父类。Hadoop使用反射为每个运行的map或reduce任务创建类的实例。创建的新实例需要一个零参数构造函数(否则它怎么知道要传递什么)。通过在不使用static关键字的情况下声明内部映射器或reduce类,java编译实际上创建了一个构造函数,该构造函数期望在构造时传入父类的实例。您应该能够通过对生成的类文

hadoop - 运行本地文件系统目录作为集群中 Mapper 的输入

我从本地文件系统向映射器提供了一个输入。它从Eclipse成功运行,但没有从集群运行,因为它无法找到本地输入路径说:输入路径不存在。请任何人帮忙我如何为映射器提供本地文件路径,以便它可以在集群中运行,并且我可以在hdfs中获取输出 最佳答案 这是一个很老的问题。最近遇到了同样的问题。不过,我不知道这个解决方案如何正确对我有用。如果这有任何缺点,请注意。这就是我所做的。Readingasolutionfromthemail-archives,我意识到如果我将fs.default.name从hdfs://localhost:8020/修

java - Hadoop mapreduce : Driver for chaining mappers within a MapReduce job

我有mapreduce工作:我的代码map类:publicstaticclassMapClassextendsMapper{@Overridepublicvoidmap(Textkey,Textvalue,Contextcontext)throwsIOException,InterruptedException{}}我想使用ChainMapper:1.Jobjob=newJob(conf,"Jobwithchainedtasks");2.job.setJarByClass(MapReduce.class);3.job.setInputFormatClass(TextInputForma

java - Hadoop - 直接从 Mapper 写入 HBase

我有一个haddop作业,它的输出应该写入HBase。我真的不需要reducer,我想插入的行类型在Mapper中确定。如何使用TableOutputFormat来实现这一点?从我看到的所有示例中,假设是reducer是创建Put的那个,而TableMapper只是用于从HBase表中读取。在我的例子中,输入是HDFS,输出是Puttospecifictable,我在TableMapReduceUtil中也找不到任何可以帮助我的东西。是否有任何示例可以帮助我解决这个问题?顺便说一句,我正在使用新的HadoopAPI 最佳答案 这是从

function - Hadoop 中 org.apache.hadoop.mapreduce.Mapper.run() 函数的用途是什么?

Hadoop中org.apache.hadoop.mapreduce.Mapper.run()函数的用途是什么?setup()在调用map()之前调用,而clean()在map()。run()的文档说ExpertuserscanoverridethismethodformorecompletecontrolovertheexecutionoftheMapper.我正在寻找这个功能的实际用途。 最佳答案 默认的run()方法简单地获取上下文提供的每个键/值对并调用map()方法:publicvoidrun(Contextcontext