余老师带你学习大数据-Spark快速大数据处理第三章第六节MR基本用例WordCount-Python

WordCount

Wordcount例子Python版本

下载程序

1、登录hadoop用户下。
命令:su - hadoop
在这里插入图片描述

2、进入到tmp目录下。
命令:cd /tmp/在这里插入图片描述

3、将mr是运行Java例子创建,我需要将mr全部删除。

命令:rm -rf mr/
在这里插入图片描述

4、再创建mr。
命令:mkdir mr
在这里插入图片描述

5、进入Spark-stack/Hadoop/目录。
命令:cd Spark-stack/Hadoop/
在这里插入图片描述

6、将WordCount-python文件拷贝到mr目录下。
命令:cp -r WordCount-python/* /tmp/mr/
在这里插入图片描述

7、确保Python正常安装。
命令:python –-version注:我们的Python是2.7.5版本。在这里插入图片描述

8、寻找streaming.jar的位置。
命令:find /hadoop/Hadoop/hadoop-3.1.2 -name "*streaming*.jar"注:在hadoop的安装文件里寻找以streaming包括streaming,以.jar为结尾的文件。
在这里插入图片描述

9、在运行之前我们需要找到数据存储目录。
命令:hdfs dfs -ls /
在这里插入图片描述

10、数据存储在installTest/hadoop目录下。
命令:hdfs dfs -ls /installTest/Hadoop
在这里插入图片描述

11、进入到/tmp/mr目录下。
命令:cd /tmp/mr

在这里插入图片描述

12、在正式提交集群之前,我们可以做一个简单的测试,验证Python脚本的正确性。

命令:cat /hadoop/Hadoop/hadoop-3.1.2/etc/hadoop/hdfs-site.xml | python WordCountMapper.py | sort | python WordCountReducer.py注:以hadoop的配置文件hdfs-site.xml为输入,依次运行Mapper、排序和Reducer
在这里插入图片描述

代码简析

在这里插入图片描述

从stdin中读取文本信息,将多余的空格去掉,化成一个个的单词,遍历每个单词,输出到流里。

在这里插入图片描述

从stdin中读取mapper的输出,再对相同key的value值累加,然后打印出每一个key总数。

运行

1、进行运行。

命令:hadoop jar hadoop/Hadoop/hadoop-3.1.2/share/hadoop/tools/lib/hadoop-streaming-3.1.2.jar \> -input /installTest/hadoop/data -output /installTest/hadoop/output5 \> -file /tmp/mr/WordCountMapper.py -file /tmp/mr/WordCountReducer.py \> -mapper WordCountMapper.py -reducer WordCountReducer.py

注:首先找到jar文件,空格加\可以多行输入,输入是data目录,输出是output5,确保输出目录是不存在的,将Mapper和Reducer放到文件缓存中,最后定义Mapper和Reducer。
在这里插入图片描述
在这里插入图片描述

2、先找到执行结果的文件。

命令:hdfs dfs -ls /installTest/hadoop/output5
在这里插入图片描述

3、查看执行结构文件。

命令:hdfs dfs -cat /installTest/hadoop/output5/part-00000

在这里插入图片描述

字符串是data输入中的字符串,数字是字符串出现的次数。

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

猜你喜欢

转载自blog.csdn.net/weixin_45810046/article/details/108824112