具有多种密钥类型的Hadoop MapReduce映射器和reducer

时间:2017-04-19 17:33:21

标签: java hadoop mapreduce

我正在使用MapReduce为网页搜索构建倒排索引。我知道如何使用MapReduce和一种密钥类型,你可以在这里设置它:

job.setMapOutputKeyClass(ArrayListWritable.class);
job.setOutputKeyClass(ArrayListWritable.class);

但是,如果我的密钥可以是不同类型的,那会受到支持吗?例如,一个键可能只是Text,另一个可能是PairOfWritables。我想为映射器到reducer的输出设置不同的键类型,从reducer到最终输出。我已经看到有一个名为MultipleOutputs的类允许指定不同的键和类,但我不确定这是否适合使用它。从互联网上看,似乎MultipleOutputs仅用于reducer方法,而不是映射器。

1 个答案:

答案 0 :(得分:0)

这是一个想法。如何创建一个新类,可以将任何类型的数据传递给reduce。该类将包含一个toString()方法,该方法最终将您的数据表示为String。使用此字符串,使用Hadoop中的Text类可以将其用作键