MapReduce 的 Java 版 WordCount 代码,结构清晰、依赖明了,适合刚上手 Hadoop 的你快速入门。整个实现分成三个主要模块:Mapper、Reducer 和 Driver,逻辑比较简单,注释也够清楚,配合 pom.xml
一起用,整个项目构建起来没啥坑。
Java 写的 MapClass 把一行行文本切词后,每个词都 context.write()
出去,值全是 1。嗯,就是这么直接。后面 ReduceClass 把这些词的值加起来,统计出每个词出现的次数,逻辑比较直白,几行代码就搞定。
WordCount
这个主类就是个调度中心,配置 Job 的各种参数,像 Mapper、Reducer、输入输出路径啥的,还顺手指定了 Combiner
,省了一波网络传输,执行效率也能提提。
说到构建,pom.xml 的配置也挺实用,依赖了 hadoop-client 2.10.1
,JDK 版本写的是 1.7
,如果你是用 IDEA 或 Eclipse,配好 HADOOP_HOME
和 JAVA_HOME
就能跑起来。
哦对了,如果你想深入一点,可以去看看Hadoop WordCount 源码深度解析,有逐行注释,看起来会更清楚。也别忘了装好 Hadoop 环境,不然打包成功了也跑不了。
如果你刚接触 MapReduce,这个 WordCount 例子还是蛮值得过一遍的。理解了 Map 和 Reduce 怎么配合,就能往下玩更复杂的逻辑了。