在Hadoop MapReduce中是否有可能使用多个不同的映射器有多个输入?每个映射器类都在一组不同的输入上工作,但它们都会发出由同一个减速器使用的键值对。请注意,我不是在这里谈论链接映射器,我是在谈论并行运行不同的映射器,而不是顺序运行。
我将用一个问题、两个答案和一个反建议来回答你的问题。
问题是:与串行运行异构映射作业相比,并行运行异构映射任务有什么好处,可以输出可以适当混洗的同质结果?这样做是为了避免两次传递相同的记录,一次使用身份图?
第一个答案是同时安排两个仅映射器作业,每个作业位于队列的一半上(或任何与输入数据大小最匹配的比率),输出同构结果,然后执行联接的仅化简器作业。
第二个答案是创建一个自定义InputFormat,它能够识别和转换异构输入的两种风格。这非常丑陋,但它将允许您避免第一个建议的不必要的身份映射。
反建议是不要使用Chris答案中已弃用的Hadoop API。Hadoop非常年轻,但API正在围绕“新”风格稳定下来。您最终将达到版本锁定。
这称为连接。
您想在mapred.*中使用映射器和还原器软件包(较旧,但仍受支持)。较新的包(mapreduce.*)只允许一个映射器输入。使用mapred软件包,您可以使用MultipleInputs类来定义连接:
MultipleInputs.addInputPath(jobConf,
new Path(countsSource),
SequenceFileInputFormat.class,
CountMapper.class);
MultipleInputs.addInputPath(jobConf,
new Path(dictionarySource),
SomeOtherInputFormat.class,
TranslateMapper.class);
jobConf.setJarByClass(ReportJob.class);
jobConf.setReducerClass(WriteTextReducer.class);
jobConf.setMapOutputKeyClass(Text.class);
jobConf.setMapOutputValueClass(WordInfo.class);
jobConf.setOutputKeyClass(Text.class);
jobConf.setOutputValueClass(Text.class);
reducer可以接受多个输入吗?两个映射器的键相同,但值类型不同。第一个是输出(text,floatwritable)的MapReduce程序,其中floatwritable是值类型,text是键。第二个是一个输出(文本,歌曲)的映射器,其中歌曲是实现可写的自定义数据类型。我想要一个缩减器,在运行计算的同时,获取早期map reduce和第二个mapper的输出。我认为第一个MapReduce程
在java中,我会使用: 多输入.add输入路径(conf, path, inputFormatClass, 映射器类) 以添加多个输入,并为每个输入使用不同的映射器。 现在我正在使用python在hadoop中编写一个流作业,可以做类似的工作吗?
我试图在我的Spring应用程序中实现API版本控制。 所以我想做这样的事情api_url/{版本}/{参数} 假设我已经更改了一个endpoint函数,那么我可以将新函数映射到新版本的新url。但是我希望其他未更改的函数映射到两个版本的url,比如API _ URL/{旧版本}/{旧参数}和API _ URL/{新版本}/{旧参数} 因此,如果我能够实现这样的东西,它将帮助我避免在Java类中重
当我映射同一个实体时,就像这里回答的那样: Hibernate与同一实体的多对多关联 在“tbl_friends”表中,我有相同含义的行。例如,我有id=1的用户和id=2的用户。在“tbl_friends”表中,当他们作为朋友链接时,我有两行 使用Hibernate或JPA引用是否可以在一行(1-2或2-1)中建立这种关系?
Tasklet类是在以下三个方法中定义的: 面临的问题:该文件包含150,000条记录,因此,在doExecute()方法之后,它将150,000条数据记录存储在列表中。在doAfterStep()方法中,它试图将列表中的所有150,000条记录保存到数据库中,从而导致事务超时错误。 解决办法: 在这个阶段,我们如何在这里发送2个实体,Entity2和entity3?
问题内容: 我可以使用ajax调用将数据发送到多个页面吗?我不想为此使用另一个ajax调用。 样例代码: 问题答案: 您无法在多个页面中对1个请求使用相同的代码。 但是您可以发送2个请求。它可以通过复制粘贴您的ajax代码或构建一个获取URL并使用此URL发送请求的函数来完成