马克-to-win @ 马克java社区:下载hadoop-2.7.4-src.tar.gz,拷贝hadoop-2.7.4-src.tar.gz中hadoop-mapreduce-project\hadoop-mapreduce-examples\src\main\java\org\apache\hadoop\examples下的WordCount.java文件中的内容到新创建的WordCount空类中。此处附上:
package com;
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;
public class WordCount {
/*马克-to-win @ 马克java社区:下面的话是我讲静态内部类时的话:马克-to-win:这里的内部类的static,意思是它可以不用实例化外部类,就自己单独被实例化,单独存在(有点像生活中的办公室和办公桌(独立于办公室,办公桌也可以存在)),静态方法不就不用实例化类,直接用吗?就实例化而言,静态内部类和外层类之间完全没有任何关系,相互独立。谁爱怎么样,就怎么样!谁想实例化谁就实例化, 不管对方的感受。当然要想让它们有关系,也可以,见下面例子中的tc.core=nc;*/
public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable> {
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
/*org.apache.hadoop.mapreduce.Mapper.Context,java.lang.InterruptedException,想看map的源代码,按control,点击,出现Attach Source Code,点击External Location/External File,找到源代码,就在Source目录下,,D:\hadoop-2.7.4\src
其中key为此行的开头相对于文件的起始位置,value就是此行的字符文本
更多请看下节:http://www.mark-to-win.com/tutorial/mydb_Hadoop_hadoopWordCountExplicitExplanation.html