Hadoop WordCount 程序实现与执行指南
Hadoop WordCount 程序实现与执行指南
下面是使用Python实现的Hadoop WordCount程序,包含完整的Mapper和Reducer部分。
这个程序可以在PyCharm中本地测试,也可以部署到远程Hadoop集群上运行。
mapper.py
import sys# 从标准输入读取数据
for line in sys.stdin:# 移除行首行尾的空白字符line = line.strip()# 将行分割为单词words = line.split()# 输出每个单词及其计数(1)for word in words:print(f"{word}\t1")
reducer.py
import sys# 初始化字典,用于存储每个单词及其对应的计数列表
word_dict = {}# 从标准输入读取数据(Hadoop 会将 Mapper 的输出通过管道传递到这里)
for line in sys.stdin:# 移除行首行尾的空白字符(如换行符、空格等)line = line.strip()# 解析输入行,按制表符(\t)分割为单词和计数两部分try:word, count = line.split('\t', 1)# 将计数转换为整数类型count = int(count)except ValueError:# 若格式不正确(如分割后元素不足、无法转换为整数),则跳过当前行continue# 统计每个单词出现的次数:# 如果单词不在字典中,初始化其值为包含当前计数的列表if word not in word_dict:word_dict[word]