Hadoop MapReduce知识预览,WordCount词频统计案例

MapReduce是一种分布式计算框架,通过Map和Reduce阶段处理数据。Map对数据进行处理,Reduce则整合Map的输出。文章提到了MapReduce的易编程性、扩展性和高容错性,但指出其不适合实时计算和流式处理。WordCount案例展示了如何进行词频统计,包括Map阶段的词分割,Shuffle阶段的排序分组,以及Reduce阶段的计数汇总。
摘要由CSDN通过智能技术生成

Mapreduce

MapReduce先分再和、分而治之的思想

Map:对一组数据元素进行某种重复式的处理

Reduce:对Map的中间结果进行某种进一步的结果整理

  • MapReduce 数据类型
    -> kv键值对形式

阶段组成:

一个MapReduce编程模型中只能包含一个Map阶段和一个Reduce阶段,或者只有Map阶段

如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序串行运行

Mapper > Reducer > Mapper > Reducer

MapReduce实例进程

  • MRAppMaster:负责整个MR程序的过程调度及状态协调
  • MapTask:负责Map阶段的整个数据处理流程
  • ReduceTask:负责Reduce阶段的整个数据处理流程

MapReduce优缺点

  • MapReduce特点
    • 易与编程,简单实现一些接口,就可以完成一个分布式程序
    • 良好的扩展性,可以通过增加机器来扩展计算能力
    • 高容错性,任何单一节点宕机不影响整个作业任务的完成
    • 适合海量数据离线处理
  • MapReduce缺点
    • 实时计算性能差,主要用于离线作业,无法做到秒级的数据响应
    • 不能进行流式计算,MapReduce主要针对离线静态数据集

MapReduce编程案例-WordCount词频统计

实现思路

  1. Map阶段核心:把输入的数据经过切割,全部标记为1,因此输出为<word, 1>
  2. Shuffle阶段核心:经过MR程序内部自带的排序分组等功能,把key相同的作为一组数据构成新的k-v键值对
  3. Reduce阶段核心:处理Shuffle完的一组数据,该组数据就是该单词所有的键值对。对所有的1进行累加求和,就是单词出现的总次数
    在这里插入图片描述

操作步骤

  1. 新建一个需要进行词频统计的文件,输入内容
    在这里插入图片描述

  2. 将文件上传至HDFS文件系统中
    在这里插入图片描述

  3. 运行Hadoop内置案例wordcount,

    • $HADOOP_HOME/share/hadoop/mapreduce路径下,名为hadoop-mapreduce-examples-*.jar
      在这里插入图片描述

    • 运行实例:

    hadoop jar hadoop-mapreduce-examples-2.7.1.jar wordcount /input /output
    

    其中 wordcount参数意思是指定运行词频统计的实例,

    /input为需要进行词频统计的文件所在路径,

    /output为结果输出路径,不需要手动创建

    在这里插入图片描述

    • 查看结果
      在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

VenYy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值