草庐IT

glass-mapper

全部标签

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

java - 哈多普。如何从 Mapper 获取 Job

我是Hadoop的新手。这次我实现了输入关键字的字数计数器。我还读到使用Job类比JobConf更好。所以我有主类的代码:...Configurationconf=newConfiguration();conf.set("keyword",args[0]);Jobjob=newJob(conf);...那么我如何才能在Mapper中取回我的关键字呢?据我了解,我需要获取我的Job对象,并使用getConfiguration()方法从Job获取Configuration对象,并且而不是调用get("keyword")方法。但是我需要如何从Mapper类中获取Job呢?感谢您的宝贵时间。

Hadoop:mapper/reducer 对象的生命周期是如何工作的?

有一个mapper类和一个reducer类是用户实现的。在mapper的map()函数和reducer的reduce()函数中,我是否应该期望这些函数可以在同一个mapper/上调用我的多个线程reducer对象实例?还是保证多次调用在同一个线程中?或者每个对象只用于map()/reduce()一次调用,然后销毁,并为下一次调用创建一个新对象?谢谢! 最佳答案 在高层次上,您绝对不能期望它们在同一个线程中运行。它们实际上经常在不同的机器上运行,这正是MapReduce具有吸引力的地方(能够在大量硬件上并行运行作业)。即使你有一个单机

java - Hadoop:当我们使用 NLineInputFormat 时,Mappers 是否并行运行?

如果是,HDFS如何将输入文件拆分为N行以供每个映射器读取?我相信这是不可能的!当拆分器需要偏移量或字节进行拆分时,可以在不处理整个输入文件的情况下进行拆分。但是当'\n'或换行符的数量很重要时,在拆分之前有必要处理总输入文件(以计算换行符)。 最佳答案 要使NLineInputFormat正常工作,每个拆分都需要知道第xN行的起始位置。正如您在对Tariq的回答的评论中指出的那样,映射器不能只知道第3行(香蕉从哪里开始),它会从map的InputSplit获取此信息。这实际上是在输入格式的getSplitsForFile方法中处理

java - 如何在 Hadoop 1.0.4 中链接 mapper/reducer?

我使用的是Hadoop1.0.4的"new"API(包org.apache.hadoop.mapreduce中的类)。当我想链接mapper/reducer时,我发现ChainMapper、ChainReducer是为“旧”API(包org.apache.hadoop.mapred中的类)编写的。我该怎么办? 最佳答案 我也在找。我确实得到了答案,尽管已经晚了,但我认为分享这个可能会对某人有所帮助。从Hadoop2.0开始,您可以在org.apache.hadoop.mapreduce.lib.chain包中找到ChainMappe

java - Hadoop(java)改变Mapper输出值的类型

我正在编写一个映射器函数,它生成一些user_id的键,值也是文本类型。这是我的做法publicstaticclassUserMapperextendsMapper{privatefinalstaticIntWritableone=newIntWritable(1);privateTextuserid=newText();privateTextcatid=newText();/*mapmethod*/publicvoidmap(Objectkey,Textvalue,Contextcontext)throwsIOException,InterruptedException{String

Hadoop Map-Reduce : what you can tell about a state: mappers: 80%, reducer :20%

在采访中有人问我一个问题:关于状态,你能说些什么:映射器:80%,缩减器:20%?我的理解是,进入那种状态是不可能的。因为在reducer开始工作之前,所有映射器都应该完成运行:收集所有键值对并按键分组。我说的对吗? 最佳答案 Reducers为20%意味着后台线程已开始将数据从mapper输出位置复制到reducer输入位置。这就是为什么在映射器输出达到100%之前,reducers进度显示为20%。 关于HadoopMap-Reduce:whatyoucantellaboutasta

hadoop - 按键然后按值对 Mapper 输出进行排序

我正在尝试编写一个示例MapReduce程序,其Mapper输出如下所示:1/1/201215:11:461/1/201219:09:261/1/201214:01:251/1/201217:32:261/1/201217:41:001/1/201219:35:381/1/201214:28:101/1/201215:45:55我希望我对reducer的输入按键排序,然后按值排序。默认情况下,Hadoop框架仅按键对映射器输出进行排序。我想我应该使用二级排序来完成这项任务,但不确定如何使用它。谁能帮我解决这个问题? 最佳答案 在高层

python-2.7 - java.io.IOException : Broken pipe on increasing number of mappers/reducers, 很多

我在6个节点的hadoop集群上运行MapReduce作业,配置了4个映射任务和10个缩减任务。Mapper/Reducer在增加map/reduce任务数量时失败很多,如下所示,我遇到以下错误:标准错误日志java.lang.RuntimeException:PipeMapRed.waitOutputThreads():subprocessfailedwithcode143atorg.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:362)atorg.apache.hadoop.streamin

spring - Hadoop Mapper 中的依赖注入(inject)

我想在我的Mapper类中注入(inject)一个依赖项。示例映射器类:publicclassMapper(){privateMyInterfacemyObject;publicvoidmap(){//Mapcodehere}}我想使用Spring将MyInterface的实现注入(inject)到myObject。这不可能直接使用spring,因为Hadoop框架本身会实例化Mapper对象。我唯一能做的就是向我的Mapper类添加一个配置函数,然后执行如下操作:publicvoidconfigure(){//createapplicationcontexthere,thenmyOb