我试图通过hadoop实现一个map-side连接,使用compositeinputformat类。为此,我需要满足以下标准:每个Map的输入都必须以特定的方式进行分区和排序。每个输入数据集必须被划分为相同数量的分区,并且必须在每个源中按相同的键(join键)排序。私钥的所有记录必须位于同一分区中,这是必需的。我需要创建一个mapreduce作业并执行它,只是为了满足这个要求?我是否需要创建一个“身份Map器和还原器”来执行此操作?或者用Hive或Pig还有别的方法吗?谢谢
6kkfgxo01#
假设您为两个输入的预处理设置相同的还原数,那么使用identity mapper/reducer就足够了。默认情况下,它将使用hashpartitioner和writeablecomparator对输入进行排序和处理。
qc6wkl3g2#
只有在两个文件中都有join键作为键时,identity mapper/reducer才能工作。如果没有,则需要编写一个简单的Map,使join键成为输出的键,并将其传递给identity reducer。
2条答案
按热度按时间6kkfgxo01#
假设您为两个输入的预处理设置相同的还原数,那么使用identity mapper/reducer就足够了。默认情况下,它将使用hashpartitioner和writeablecomparator对输入进行排序和处理。
qc6wkl3g2#
只有在两个文件中都有join键作为键时,identity mapper/reducer才能工作。
如果没有,则需要编写一个简单的Map,使join键成为输出的键,并将其传递给identity reducer。