MapReduce 入门之一步步自实现词频统计功能的教程
笔记中提供了大量的代码示例,需要说明的是,大部分代码示例都是本人所敲代码并进行测试,不足之处,请大家指正~
lz 本来想先仔细写一写 hadoop 伪分布式的部署安装,然后介绍一些 hdfs 的内容再来介绍 mapreduce,是在是没有抽出空,今天就简单入门一下 mapreduce 吧。
一、mapreduce 概述
1.mapreduce 是一种分布式计算模型,由google提出,主要用于搜索领域,解决海量数据的计算问题.
2.mapreduce 由两个阶段组成:map和reduce,用户只需要实现map()和reduce()两个函数,即可实现分布式计算
二、具体实现
1.先来看一下 eclipse 中此应用的包结构
2.创建 map 的任务处理类:wcmapper
2.创建 reduce 的任务处理类:wcreducer:
3.创建一个类,用来描述一个特定的作业:wcrunner,(此类了lz没有按照规范的模式写)
4.将此项目导出为 jar 文件
步骤:右击项目 ---> export ---> java ---> jar file --->指定导出路径(我指定的为:e:\wc.jar) ---> finish
5.将导出的 jar 包上传到 linux 上
lz使用的方法是:在 securecrt 客户端中使用 alt + p 快捷键打开上传文件的终端,输入 put e"\wc.jar 即可上传
6.创建初始测试文件:words.log
命令: vi words.log 自己输入测试数据即可
7.在 hdfs 中创建存放初始测试文件 words.log 的目录:我们在 wcrunner 中指定的是 /wc/srcdata/
命令:
[hadoop@crawl ~]$ hadoop fs -mkdir /wc
[hadoop@crawl ~]$ hadoop fs -mkdir /wc/srcdata
8.将初始测试文件 words.log 上传到 hdfs 的相应目录
命令:[hadoop@crawl ~]$ hadoop fs -put words.log /wc/srcdata
9.运行 jar 文件
命令:hadoop jar wc.jar com.software.hadoop.mr.wordcount.wcrunner
此命令为 hadoop jar wc.jar 加上 wcrunner类的全类名,程序的入口为 wcrunner 内的 main 方法,运行完此命令便可以看到输出日志信息:
然后前去我们之前配置的存放输出结果的路径(lz之前设置的为:/wc/output/)就可以看到 mapreduce 的执行结果了
输入命令:hadoop fs -ls /wc/output/ 查看以下 /wc/output/ 路径下的内容
结果数据就在第二个文件中,输入命令:hadoop fs -cat /wc/output/part-r-00000 即可查看:
至此我们的这个小应用就完成了,是不是很有意思的,lz 在实现的时候还是发生了一点小意外:
lz 查阅资料发现这是由于 jdk 版本不一致导致的错误,统一 jdk 版本后便没有问题了。
以上这篇mapreduce 入门之一步步自实现词频统计功能的教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。