余老师带你学习大数据-Spark快速大数据处理第三章第四节MR基本用例WordCount
MR基本用例
MR基本用例
下载程序
1、切换到hadoop用户下。
命令:su – hadoop
2、查看集群是否正常工作。
命令:jps
3、切换到/tmp目录下,并创建mr文件。注:这个mr是之前在做Java例子时创建的,现在可以删除掉。
命令:cd /tmp/
、mkdir mr
4、进入Spark-stack/Hadoop/目录下。
命令:cd Spark-stack/Hadoop/
5、将WordCount-python拷贝到/tmp/mr/目录下。
命令:cp -r WordCount/* /tmp/mr/
6、打开org/apache/hadoop/examples目录下的WordCount.java文件。
命令:vi org/apache/hadoop/examples/WordCount.java
7、因为现在是hadoop的集群环境中编译程序,而不是在idea中导出jar包,需要把包的信息注释。
代码解释
解析输入函数的输入参数、输入的路径、输出的路径。
创建Job,代表MapReduce的整个过程。
将多个输入文件或者路径加到job中
Key为行号、value为给map的每一行的字符串、context定义整个上下文环境。首先现将value变成string,再通过StringTokenizer方法变成一个个的单词存放在word中,再将word中出现的单词和频次存放到context中。
已经将map中的相同的key的内容集合到一起。将同一个key的多个做map的结果进行一个求和。
编译
1、首先确保HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar目录存在。
命令:export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar
2、因为Java文件存放在WordCount/org/apache/hadoop/examples/目录下,所以进入该目录下。
命令:cd 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.****.net/course/detail/24205