MapReduce程序执行过程

本文介绍Hadoop MapReduce的基本工作流程,包括输入数据如何从HDFS读取,FileInputFormat如何处理每一行数据为key-value对,mapper阶段如何进行行分割处理,以及shuffle过程中的分区、分组和排序步骤。最后还详细解释了reduce阶段如何汇总相同key的数据。

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

Hadoop hive spark
hive spark HBASE

input
    -》默认从HDFS中读取数据
        FileInputFormat
    -》将每一行转成keyvalue
    -》输出:
        <行偏移量,行内容>
        key     value
        0       Hadoop hive spark
        17      hive spark HBASE
mapper
    -》输入:input输出<LongWritable,Text>
    -》map:方法,一行调用一次
        针对每一个行进行分割
        输出:
        key     value
        Hadoop  1       reduce1
        hive    1       reduce2
        spark   1       reduce1
        hive    1       reduce2
        spark   1       reduce1
        HBASE   1       reduce1
shuffle:分区,分组,排序
    输出:
        key     value
        Hadoop  <1>         
        HBASE   <1>
        hive    <1,1>
        spark   <1,1>
reduce:
    reduce方法:每一条keyvalue调用一次reduce方法
        将相同key的值List<value>,进行了相加求和
    输入:
        key     value
        Hadoop  <1>
        HBASE   <1>
        hive    <1,1>
        spark   <1,1>
    输出:
        key     value
        Hadoop  1
        HBASE   1
        hive    2
        spark   2
output:
    输出:默认将reduce的输出写入到hdfs
    FileOutputFormat

MapReduce开发模板
POJO:没有继承类也没有实现任何接口

不继承也不实现
继承及实现
    extends Configured implements Tool
    官方推荐
不继承只实现
    implements Tool
    企业中用的比较多,一般Configured需要自定义一些配置,

自定义数据类型
基本数据类型
IntWritable,
LongWritable
Text
NullWritable
和java类型的转换
int –>set—> IntWritable
IntWritable –>get—>int

需求:

Map
    输入:

    输出
        key     value
    hive    0   1
    Hadoop  0   1
    spark   0   1
    HBASE   0   1
    hive    0   1
    spark   0   1

reduce 
    输入:
        Hadoop  0   <1>
        HBASE   0   <1>
        hive    0   <1,1>
        spark   0   <1,1>
    输出
        Hadoop  1   1
        HBASE   1   1
        hive    2   2
        spark   2   2

<key,value>

-》implements WritableComparable
-》定义成员变量,及get,set
-》序列化和反序列,顺序必须一致
-》compareTo
-》构造方法,带参数和无参
-》setAllValue
-》toString
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值