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]