hadoop之Wordcount实验解析


  1. 

一、概述

单词计数是最简单也最能体现MapReduce思想的程序之一,单词计数的主要功能在于:统计一系列文本文件总每个但系出现的次数。本次实验预通过分析WordCount源码来进一步明确MapReduce程序的基本结构和运行机制。

二、环境准备

系统环境:Ubuntu 16.0

软件环境:Java 1.8.0

Hadoop 3.0

三、map和reduce工作原理简介:

从HDFS内部看,一个文件储存到HDFS后,被分成一个或多个数据块(block),这些数据块存储在Datenode上。数据块与MapReduce的处理单位split相对应:

1.map任务处理

(a)读取文件内容,解析成key、value对。对输入文件的每一行,解析成key、value对。每一个键值对调用一个map函数。

(b)在map函数中可以编写自己的逻辑,对输入的key、value处理,转换成新的key、value输出。

(c)对输出的key、value进行分区。

(d)对不同分区的数据,按照key进行排序、分组。相同key的value放到一个集合中。

2.reduce任务处理

(a)对多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点。

(b)对多个map任务的输出进行合并、排序。写reduce函数自己的逻辑,对输入的key、reduce处理,转换成新的key、value输出。

(c)把reduce的输出保存到文件中。

 

 

 

对于最能体现MapReduce思想的实验Wordcount而言,其主要完成了map任务的“分块”任务,将整个文件分成若干个“简单的任务”进行执行。

 

四、实例开发

在Linux系统桌面上新建一个文件夹,用作本次文件的存放。初学者可以手动创建,本次实验创建的java程序名称为:WordCoun.java。创建的文件名为:wordcount。文件创建好后,可以在终端检查文件是否创建成功。

在文件夹和java程序创建好后,进行java包的编译,编译整个包里的文件。编译过程如若出现错误:

则需要重新设置环境变量:

·

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值