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

x33g5p2x  于2022-06-08 转载在 Linux  
字(1.6k)|赞(0)|评价(0)|浏览(702)

1、启动hadoop集群

  1. $HADOOP_HOME/sbin/start-all.sh

2、准备好数据并上传HDFS

  1. # 创建文件夹
  2. hadoop fs -mkdir /test
  3. #上传数据到HDFS文件
  4. hadoop fs -put 1.data /test/
  5. hadoop fs -put The_Man_of_Property.txt /test/

3、map.py

vi map.py

  1. import sys
  2. import time
  3. import re
  4. p = re.compile(r'\w+')
  5. for line in sys.stdin:
  6. ss = line.strip().split(' ')
  7. for s in ss:
  8. #time.sleep(1)
  9. if len(p.findall(s)) < 1:
  10. continue
  11. s = p.findall(s)[0].lower()
  12. if s.strip() != "":
  13. print ("%s\t%s" % (s, 1))

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

4、red.py

  1. import sys
  2. current_word = None
  3. sum = 0
  4. for line in sys.stdin:
  5. word, val = line.strip().split("\t")
  6. if current_word == None:
  7. current_word = word
  8. if current_word != word:
  9. print("%s\t%s" % (current_word, sum))
  10. current_word = word
  11. sum = 0
  12. sum += int(val)
  13. print("%s\t%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

  1. HADOOP_CMD="/usr/local/src/hadoop-2.6.5/bin/hadoop"
  2. STREAM_JAR_PATH="/usr/local/src/hadoop-2.6.5/share/hadoop/tools/lib/hadoop-streaming-2.6.5.jar"
  3. INPUT_FILE_PATH="/test/1.data"
  4. # INPUT_FILE_PATH_1="/The_Man_of_Property.txt"
  5. OUTPUT_PATH="/result_new"
  6. $HADOOP_CMD fs -rmr -skipTrash $OUTPUT_PATH
  7. # step.1
  8. $HADOOP_CMD jar $STREAM_JAR_PATH \
  9. -input $INPUT_FILE_PATH \
  10. -output $OUTPUT_PATH \
  11. -mapper "python map.py" \
  12. -reducer "python red.py" \
  13. -file ./map.py \
  14. -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

开发者涨薪指南

48位大咖的思考法则、工作方式、逻辑体系

相关文章

最新文章

更多