Task4参考答案

  1. MR原理

hadoop streaming 原理 图片

作业思路 a. 准备数据 b. 写mr c. 执行并验证答案

  1. 使用Hadoop Streaming -python写出WordCount

Python版本 2.1 准备数据 vim wc_input.txt

hello
word
hello
world
hello
python
java
python
hadoop fs -mkdir -p /user/dw/wc/input/
hadoop fs -mkdir -p /user/dw/wc/output/
hadoop fs -put wc_input.txt /user/dw/wc/input/

2.2 编写map/reduce/run.sh(注意修改/path/to) mapper

import sys


for line in sys.stdin:
	word = line.strip()
	print(word+'\t'+'1')

reducer.py

run.sh

2.3. 设置输入输出路径 2.4. 执行,sh run.sh 2.5. check答案

1 使用mr计算movielen中每个用户的平均评分。 1.1 主备数据

1.2 编写map/reduce/run.sh mapper.py

reduce.py

run.sh 略,参考以上run.sh 1.3 check结果的正确性,自行编写python代码验证

  1. 实现merge功能 2.1 准备数据ml-100k u.data u.item 自行使用map先将二者分隔符统一,例如全部使用#作为分隔符

2.2 编写map/reduce/run mapper.py

reducer.py

  1. 使用mr实现去重任务。 3.1 准备数据

其他步骤同上 3.2 map/reduce/run

mapper.py

reducer.py

  1. 使用mr实现排序。 4.1 数据,使用上述计算的电影平均分作为输入

4.2 编写map/reduce/run

  1. 使用mapreduce实现倒排索引。

mapper.py

reducer.py

  1. 使用mapreduce计算Jaccard相似度(参考spark实现)。

  2. 使用mapreduce实现PageRank(选做,答案略,自行查阅)。

Python3调用Hadoop的API

Last updated

Was this helpful?