栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

大数据:以Linux脚本实现 Map Reduce 的运用 —— 以wordCount为例

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

大数据:以Linux脚本实现 Map Reduce 的运用 —— 以wordCount为例

文章目录
    • 1、启动hadoop集群
    • 2、准备好数据并上传HDFS
    • 3、map.py
    • 4、red.py
    • 5、用脚本一步到位

1、启动hadoop集群
$HADOOP_HOME/sbin/start-all.sh
2、准备好数据并上传HDFS
# 创建文件夹
hadoop fs -mkdir /test
#上传数据到HDFS文件
hadoop fs -put 1.data /test/
hadoop fs -put The_Man_of_Property.txt /test/

3、map.py

vi map.py

import sys
import time
import re
p = re.compile(r'w+')
for line in sys.stdin:
        ss = line.strip().split(' ')
        for s in ss:
                #time.sleep(1)
                if len(p.findall(s)) < 1:
                        continue
                s = p.findall(s)[0].lower()
                if s.strip() != "":
                        print ("%st%s" % (s, 1))

cat 1.data | python map.py | head -15 运行map.py 得出头15条数据结果:map 切分单词完成,接下来用red统计单词次数。


4、red.py
import sys
current_word = None
sum = 0

for line in sys.stdin:
        word, val = line.strip().split("t")
        if current_word == None:
                current_word = word
        if current_word != word:
                print("%st%s" % (current_word, sum))
                current_word = word
                sum = 0
        sum += int(val)
print("%st%s" % (current_word, str(sum)))

cat 1.data | python map.py | sort -k1 | python red.py | tail -15 运行mapreducer程序,实现wordCount。输出最后15条数据。


5、用脚本一步到位

创建脚本 vi run.sh

HADOOP_CMD="/usr/local/src/hadoop-2.6.5/bin/hadoop"
STREAM_JAR_PATH="/usr/local/src/hadoop-2.6.5/share/hadoop/tools/lib/hadoop-streaming-2.6.5.jar"

INPUT_FILE_PATH="/test/1.data"
# INPUT_FILE_PATH_1="/The_Man_of_Property.txt"

OUTPUT_PATH="/result_new"

$HADOOP_CMD fs -rmr -skipTrash $OUTPUT_PATH

# step.1
$HADOOP_CMD jar $STREAM_JAR_PATH 
    -input $INPUT_FILE_PATH 
    -output $OUTPUT_PATH 
    -mapper "python map.py" 
    -reducer "python red.py" 
    -file ./map.py 
    -file ./red.py

运行脚本:sh -x run.sh ,正常运行会有 map与reduce 的进度。
最后,查看你的 OUTPUT_PATH 路径:例如: hadoop fs -cat /result_new/pa* | tail -15
一样的结果不同的实现方式。

这篇文章,只是写了,怎么做的过程代码,没有详细的解释代码的意思。

下面篇文章就有详细的解释,可以看下。
https://blog.csdn.net/weixin_44775255/article/details/120912957

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/958509.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号