hadoop2.7运行python编写的wordcount的MapReduce程序

本文介绍了如何使用Python3.6和Hadoop2.7.4实现WordCount的MapReduce程序。通过编写mapper.py和reducer.py,详细阐述了mapper的分词逻辑和reducer的计数过程,并提供了测试和在Hadoop上运行的步骤。文章还提到了使用Hadoop的streaming工具来处理Python程序,并展示了成功的运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

一般来说,在学习某个新技术之前,都会写一个Hello World!的小程序,这个程序简单但是包含了一个程序所必须具备的一切。MapReduce程序也有自己的Hello World,那即是Word Count。

在学习用python编写word count的过程中,遇到了许多坑,网上许多教程都过时了或者版本不对,许多基于python的word count教程都是转载自或者翻译自这片文章http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/.

从截图来判断,文章是2007年写的,使用的可能是python2.x,Hadoop0.x版本。现在来看显然已经过时了。参考了那篇文章后,本文使用python3.6,Hadoop2.7.4在ubuntu16.04的环境下实现python编写的wordcount的MapReduce程序。

正文

实现wordcount任务,我们分别编写mapper.py和reducer.py,其中mapper.py负责将文章切分为单个单词,以<单词,1>的元组形式输出,其中1代表数量,英文mapper只负责分割,所以每个单词数量都是1,注意会有重复的单词,比如you,那么会多次出现元组

mapper.py

首先我们来编写mapper,逻辑不负责,代码如下:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Date    : 2018-04-16 14:13:44

"""mapper.py"""
import sys
import re
# print("hello world")

for line in sys.stdin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值