草庐IT

glass-mapper

全部标签

java - 输出文件包含 Mapper Output 而不是 Reducer 输出

您好,我正在尝试在独立模式下使用mapreduce技术求几个数字的平均值。我有两个输入文件。它包含值file1:2525252525和file2:1515151515。我的程序运行良好,但输出文件包含映射器的输出而不是缩减器的输出。这是我的代码:importjava.io.IOException;importjava.util.StringTokenizer;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.IntWritable;i

hadoop - 在 mapper 的单个输出上运行多个 reducer

我正在使用mapreduce实现左连接功能。左侧有大约6亿条记录,右侧有大约2300万条记录。在映射器中,我使用左连接条件中使用的列制作键,并将键值输出从映射器传递到缩减器。我遇到了性能问题,因为两个表中的值数量都很高(例如分别为456789和78960)的映射器键很少。即使其他reducer完成了它们的工作,这些reducer仍会继续运行更长时间。有没有什么方法可以让多个reducer并行处理mapper的相同键值输出以提高性能?这是我要优化的Hive查询。selectdistincta.sequence,a.fr_nbr,b.to_nbr,a.fr_radius,a.fr_zip,

java - 如何设置一个 reducer 来发送 <Text, IntWritable> 和一个 mapper 来接收 <Text, IntWritable>?

我正在使用ma​​preduce在hadoop上开发一些代码,它使用了两个映射器和两个缩减器。我被告知要使用SequenceFileInputFormat和SequenceFileOutputFormat使第一个reducer的输出和第二个mapper的输入一起工作。问题是我正在记录一个错误,在googleing很多之后我不知道为什么。错误:java.lang.Exception:java.io.IOException:Typemismatchinkeyfrommap:expectedorg.apache.hadoop.io.IntWritable,receivedorg.apache

hadoop - 如何在Hadoop中设置NameNodes、DataNodes、Mappers和Reducers的数量

我想知道如何设置数量NameNode数据节点映射器reducer在Hadoop的代码/配置中。 最佳答案 Namenode和DataNode数量由您的业务需求决定。您无需通过编程来设置它们。如果您需要可伸缩性,则必须了解HDFS联邦的概念。请参阅此文档page有关联邦的更多详细信息。Inordertoscalethenameservicehorizontally,federationusesmultipleindependentNamenodes/namespaces.TheNamenodesarefederated;theName

hadoop - RecordReader如何向Hadoop中的mapper发送数据

我是Hadoop新手,目前正在学习DonaldMiner和AdamShookMapReduce设计模式一书中的mapreduce设计模式。所以在这本书中有笛卡尔积模式。我的问题是:记录读取器何时向映射器发送数据?将数据发送到映射器的代码在哪里?我看到的是CartesianRecordReader类中的下一个函数读取两个拆分而不发送数据。这是源代码https://github.com/adamjshook/mapreducepatterns/blob/master/MRDP/src/main/java/mrdp/ch5/CartesianProduct.java就这些了,先谢谢了:)

java - Mockito 无法模拟 Hadoop Mapper 上下文

所以我正在尝试使用Mockito为我的Hadoop映射函数创建一个单元测试。我已经正确地创建了Mapper类:classXmlMapperextendsMapper[LongWritable,Text,Text,LongWritable]{overridedefmap(key:LongWritable,value:Text,context:Mapper[LongWritable,Text,Text,LongWritable]#Context):Unit={//doesstuff}}然后我有以下测试:importorg.apache.hadoop.io.{LongWritable,Tex

java - 如何将 java.lang.Class<Mapper> 转换为 java.lang.class<TableMapper>

解决方案见底部。我正在尝试编写一些通用处理代码,但在其中一个子类中,它需要一个更具体的类。所以基类作为Class类型的字段,在子类中我试图将该Class对象转换为Class类型,它是org.apache.hadoop.hbase.mapreduce.Mapper的子类.我从Netbeans收到以下错误:"Incompatibletypesrequired:java.lang.Classfound:java.lang.class"当我尝试下面的代码时ClasstableMapperClass=null;if(mapperClass.equals(TableMapper.class)){t

java - 当我在 Reducer 中读取它们时,Mapper 中发送的文本/字符串值是错误的

我正在Mapper中发送一些数据,当我尝试在Reducer中读取它们时,它们发生了一些变化。在简历中,我使用set函数填充数据,然后使用get函数在reducer中读取它们。我不明白为什么如果我执行println,数据会不同。我发送的数据在一个名为“ValorFechaHora”的类中,有3个变量Medicion、Fecha和Hora:publicclassValorFechaHoraimplementsWritable{ privateIntWritableMedicion; privateTextFecha; privateTextHora; publicvoidValorFec

hadoop - hdfs中的mapper和reducer运行时日志在哪里?

当我的mapreduce作业完成后,我可以转到作业历史url并在其中查看单个reducer/mapper日志。但是,我有很多映射器和缩减器,我需要将它们全部下载到我的本地驱动器以进行分析。我不知道这些日志文件在hdfs中的位置。你知道它在哪里吗? 最佳答案 我想您需要的是一个unix命令:yarnlogs-applicationId应用程序ID在MR应用程序启动期间显示,例如...15/07/1310:52:23INFOinput.FileInputFormat:Totalinputpathstoprocess:415/07/131

hadoop - 在 MapReduce 的 Mapper 类中使用静态关键字

我是MapReduce的新手。我见过很多用MapReduce编写并声明静态变量的代码。示例:publicclassMapextendsMapper{privatestaticIntWritableone=newIntWritable(1);privateTextword=newText();publicvoidmap(Objectkey,Textvalue,Contextcontext){//Mappercode}}}但有疑问,我知道每个Map任务都是在单独的JVM中实例化的。那么Mapper实例如何共享静态变量呢?如果不能共享,静态变量有什么用? 最佳答案