标题项目需求:
一个英文书籍包含成千上万个单词或者短语,在大量的单词中,找出相同字母组成的所有单词.
策略:
为加快数据处理的速度,借助Hadoop中的MapReduce编程模型的特点,编写出并行计算程序.
解决方案:
1、在 Map
阶段,对每个word(单词)按字母进行排序生成sortedWord,然后输出key/value键值对(sortedWord,word)。
2、在 Reduce 阶段,统计出每组相同字母组成的所有文本
代码如下:
Map代码
package com.itstar.partitiontest;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import java.io.IOException;
import java.util.Arrays;
/*
* 项目需求:
* 一个英文书籍包含成千上万个单词或者短语,在大量的单词中,找出相同字母组成的所有单词.
* 策略:
* 为加快数据处理的速度,借助Hadoop中的MapReduce编程模型的特点,编写出并行计算程序.
*
*解决方案:
* 1、在 Map 阶段,对每个word(单词)按字母进行排序生成sortedWord,然后输出key/value键值对(sortedWord,word)。
* 2、在 Reduce 阶段,统计出每组相同字母组成的所有文本。
*
*
*
* */
public class wordMap extends Mapper<Object, Text,Text,Text> {
Text sortedText =new Text();
Text orginalText =new Text();
@Override
protected void map(Object key, Text value, Context context) throws IOException, InterruptedException {
String line = value.toString();<