更新时间:2024-08-03 GMT+08:00

MapReduce应用开发常用概念

  • Hadoop shell命令

    Hadoop基本shell命令,包括提交MapReduce作业,kill MapReduce作业,进行HDFS文件系统各项操作等。

  • MapReduce输入输出(InputFormat,OutputFormat)

    MapReduce框架根据用户指定的InputFormat切割数据集,读取数据,并提供给map任务多条键值对进行处理,决定并行启动的map任务数目。MapReduce框架根据用户指定的OutputFormat,把生成的键值对输出为特定格式的数据。

    map、reduce两个阶段都处理在<key,value>键值对上,也就是说,框架把作业的输入作为一组<key,value>键值对,同样也产出一组<key,value>键值对作为作业的输出,这两组键值对的类型可能不同。对单个map和reduce而言,对键值对的处理为单线程串行处理。

    框架需要对key和value的类(classes)进行序列化操作,因此,这些类需要实现Writable接口。另外,为了方便框架执行排序操作,key类必须实现WritableComparable接口。

    一个MapReduce作业的输入和输出类型如下所示:

    (input)<k1,v1> —> map —> <k2,v2> —> 汇总数据 —> <k2,List(v2)> —> reduce —> <k3,v3>(output)

  • 业务核心

    应用程序通常只需要分别继承Mapper类和Reducer类,并重写其map和reduce方法来实现业务逻辑,它们组成作业的核心。

  • MapReduce WebUI界面

    用于监控正在运行的或者历史的MapReduce作业在MapReduce框架各个阶段的细节,以及提供日志显示,帮助用户更细粒度地去开发、配置和调优作业。

  • 归档

    用来保证所有映射的键值对中的每一个共享相同的键组。

  • 混洗

    从Map任务输出的数据到Reduce任务的输入数据的过程称为Shuffle。

  • 映射

    用来把一组键值对映射成一组新的键值对。