保证当前shell的用户为hadoop(如果当前用户已经是hadoop,此步可忽略)
参考第一章相关节。
Wordcount例子Python版本
下载程序
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