hadoop学习笔记(三)MapReduce入门 WordCount

之前的hdfs是对集群上的文件进行管理,进行增删改查等操作,只针对文件本身,不针对文件内容。

而MapReduce则是对文件内容进行管理。

 MapReduce采用的是“分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个从节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单来说,MapReduce就是”任务的分解与结果的汇总“。

大部分人接触MapReduce的第一个例子就是次数统计WordCount了吧?hadoop的example中自带有,可以直接运行,下载了src包后也能直接查看源码。

这里给一个自己做的wordcount例子:

package MapReduce;

import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import java.io.IOException;
import java.util.StringTokenizer;

// 在分布式计算中,MapReduce框架负责处理了并行编程里分布式存储、工作调度,负载均衡、容错处理以及网络通信等复杂问题
// 处理过程可高度抽象为Map与Reduce两个部分
// 其中Map部分负责把任务分解成多个子任务,Reduce部分负责把分解后多个子任务的处理结果汇总起来
public class WordCount {

    // Map过程需要继承org.apache.hadoop.mapreduce包中Mapper类,并重写其map方法
    public static class doMapper extends Mapper<Object, Text, Text, IntWritable>
    //第一个Object表示输入key的类型;第二个Text表示输入value的类型;第三个Text表示表示输出键的类型;第四个IntWritable表示输出值的类型
    {
        public static final IntWritable one = new IntWritable(1);//定义一个固定值,相当于int One=1
        public static Text word = new Text();//Text类相当于java中的String

        @Override
        // map()参数:(Object)key-该行的首字母相对于文本文件的首地址的偏移量;(Text)line-文本文件中的一行内容(以回车符为行结束标记)
        // 截取每行的每个单词,value值计为1
        protected void map(Object key, Tex
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值