Hadoop的MapReduce实例讲解—Python写的WordCount Demo

    MapReduce是hadoop这只大象的核心,Hadoop 中,数据处理核心就是 MapReduce 程序设计模型。一个Map/Reduce 作业(job) 通常会把输入的数据集切分为若干独立的数据块,由 map任务(task)以完全并行的方式处理它们。框架会对map的输出先进行排序, 然后把结果输入给reduce任务。通常作业的输入和输出都会被存储在文件系统中。因此,我们的编程中心主要是 mapper阶段和reducer阶段。
    本文将通过 MapReduce中最为经典并简单的WordCount实例来展示MapReduce工作原理。官网和各类博客均有相关教程,内容大同小异,但在实际操作过程中还是会遇到一些未被提到的坑,最后发现能够顺利跑完这个MapReduce的简单实例还是真的不容易的,特地将操作过程复现一遍,供大家参考。

1.前提(环境)
搭建好Hadoop的分布式集群,并开启Hadoop相关进程,已经启动了必需的各项进程:namenode、datanode、resourcemanager、nodemanager、JobHistoryServer 等。并拥有Python2.7版本。Python3版本的话需要修改程序。
2.代码和数据集准备
1)编写Map代码
这里我们创建一个map.py脚本,从标准输入(stdin)读取数据,默认以空格分隔单词,然后按行输出单词机器词频到标准输出(stdout),整个Map处理过程不会统计每个单词出现的总次数,而是直接输出“word 1”,以便作为Reduce的输入进行统计。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值