保证当前shell的用户为hadoop(如果当前用户已经是hadoop,此步可忽略)

参考第一章相关节。

MR基本用例

在这里插入图片描述 在这里插入图片描述

下载程序

1、切换到/tmp目录下,并创建mr文件。(注:如果有,这个mr是之前在做Java例子时创建的,现在可以删除掉。) 命令:

mkdir mr

然后通过GitHub下载Spark-stack。 命令:git clone https://github.com/haiye1018/Spark-stack

注:对于高校版的学生请仔细阅读第一章第一节中"She平台高校版的资源"中的内容,git地址不上上面的;通常高校版服务端没有外网,访问不了上面地址。

2、进入Spark-stack/Hadoop/目录下。 命令:

cd Spark-stack/Hadoop/

在这里插入图片描述

3、将WordCount-python拷贝到/tmp/mr/目录下。 命令:

cp -r WordCount/* /tmp/mr/

在这里插入图片描述

4、打开org/apache/hadoop/examples目录下的WordCount.java文件。 命令:

在这里插入图片描述

5、因为现在是hadoop的集群环境中编译程序,而不是在idea中导出jar包,需要把包的信息注释。

在这里插入图片描述

代码解释

在这里插入图片描述

解析输入函数的输入参数、输入的路径、输出的路径。 创建Job,代表MapReduce的整个过程。

在这里插入图片描述 将多个输入文件或者路径加到job中

在这里插入图片描述

Key为行号、value为给map的每一行的字符串、context定义整个上下文环境。首先现将value变成string,再通过StringTokenizer方法变成一个个的单词存放在word中,再将word中出现的单词和频次存放到context中。

在这里插入图片描述

已经将map中的相同的key的内容集合到一起。将同一个key的多个做map的结果进行一个求和。

编译

1、设置环境变量HADOOP_CLASSPATH。

命令:

export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar

在这里插入图片描述

2、因为Java文件存放在WordCount/org/apache/hadoop/examples/目录下,所以进入该目录下。

命令:

在这里插入图片描述

3、进行编译。

命令:

hadoop com.sun.tools.javac.Main WordCount.java

注:会出现很多class文件。

在这里插入图片描述

4、将class文件打包,打包成一个可以执行的jar包。

命令:

jar cf WordCount.jar WordCount*.class

在这里插入图片描述

运行MapReduce

1、查看目录。

命令:

hdfs dfs -ls /

注:有一个安装路径installTest。

在这里插入图片描述

2、查看installTest目录。

命令:

hdfs dfs -ls /installTest

在这里插入图片描述

3、查看hadoop目录。

命令:

hdfs dfs -ls /installTest/Hadoop 

注:data目录就是在安装时的目录,output是之前在做hadoop安装测试时的mapreduce任务。

在这里插入图片描述

4、查看data目录。

命令:

hdfs dfs -ls /installTest/hadoop/data

在这里插入图片描述

5、提交MapReduce程序。

命令:

hadoop jar WordCount.jar WordCount /installTest/hadoop/data /installTest/hadoop/output3

注:输入是/installTest/hadoop/data,输出是/installTest/hadoop/output3,确保输出是不存在的。map需要缓步启动,reduce需要map启动完才运行。

在这里插入图片描述 在这里插入图片描述

6、查看结果。

命令:

hdfs dfs -ls /installTest/hadoop/output3

在这里插入图片描述

7、结果在part-r-00000文件里。查看该文件。

命令:

hdfs dfs -cat /installTest/hadoop/output3/part-r-00000

在这里插入图片描述

前面的字符串是输入数据也就是data里出现过的字符串,数字是出现的次数。

友情提示:详细学习内容可观看Spark快速大数据处理——余海峰https://edu.csdn.net/course/detail/24205