一、概述
在Linux下,
使用命令行编译并打包成jar,使用Hadoop运行自己的MapReduce程序,以WordCount为例。
二、环境
1、笔记本电脑一台,操作系统:window10
2、VMwearWorkstation 12.0
3
、虚拟机操作系统:
Ubuntu16.04
三、步骤及测试
1. 添加 Hadoop 的 classhpath 信息添加到 CLASSPATH 变量中
在 ~/.bashrc 中增加如下几行:
export HADOOP_HOME=/usr/local/hadoop
exportCLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
执行 source ~/.bashrc 使变量生效
2. 使用Javac编译自己的MapReduce程序
javac WordCount.java
编译后可以看到生成了几个 .class 文件。
3.把 .class 文件打包成 jar
jar -cvf WordCount.jar ./WordCount*.class
4.在hadoop上运行程序
创建WordCount的输入
1. mkdir input
2. echo "echo of the rainbow" > ./input/file0
3. echo "the waiting game" > ./input/file1
开始运行:
/usr/local/hadoop/bin/hadoop jar WordCount.jar org.apache.hadoop.examples.WordCount input output
正确运行后的结果如下:
本次使用的是,已经上传到hdfs的protocols文件
(1)开始运行wordcount任务
(2)map 100% reduce 100% ;Job成功执行
(3)Job执行后的整体情况
(4)hdfs上查看是否生成输出文件
(5)查看生成的单词统计数据