主页 分类 关于

大数据 MaoReduce

MaoReduce个人整理

MaoReduce 定义

  • 分布式运算程序的编程框,用于开发基于 Hadoop的数据分析的核心框架

  • 使用: 用户编写的业务逻辑代码和自带默认组件一个完整的分布式运算程序, 并发运行在一个 Hadoop集群上

  • 优点:

    • 易于编写: 用户只关心, 业务逻辑 实现框架的接口

    • 良好的扩展性: 可以动态增加服务器, 解决动态资源不够的问题

    • 高容错性: 任何一台机器挂掉, 可以将任意转移到其它节点上

    • 适合海量数据计算 (TB/PB) 几千台服务器共同计算

  • 缺点:

    • 不擅长实时计算 Mysql

    • 不擅长流式计算 Sparkstreaming flink

    • 不擅长DAG有向无环图计算 spark

MaoReduce运算程序一般分Map阶段和Reduce阶段 两个阶段

  • Map阶段的并发MapTask, 完全并发运行, 互不相干

  • Reduce阶段的并发ReduceTask, 完全互不相干, 但是它们的数据依赖于上一个阶段的所有MapTask并发实例的输出

  • MaoReduce编程模型只能包含一个Map阶段和Reduce阶段, 如果用户的业务逻辑非常复杂, 那就只能多个MaoReduce程序, 串行运行

MapReduce进程

  • MrAppMaster: 负责整个程序的过程调度及状态协调

  • MapTask: 负责Map阶段的整个数据处理流程

  • ReduceTask: 负责Reduce阶段的整个数据处理流程

常用数据序列化类型

Java类型 Hadoop Writable
Boolean BooleanWritable
Byte ByteWritable
Int IntWritable
Float FloatWritable
Long LongWritable
Double DoubleWritable
String Text
Map MapWritable
Array ArrayWritable
Null NullWritable

统计 次数信息

用到的txt数据

Stitch Stitch Stitch 
626
Angel Angel Angel Angel Angel Angel
624
Reuben Reuben
625

Mapper

(1). 将MapTask传给我们的文本内容先转换成String

Stitch Stitch Stitch 

(2). 根据空格将一行切分成单词

Stitch 
Stitch
Stitch

(3). 将单词输入为<单词, 1>

Stitch, 1
Stitch, 1
Stitch, 1

Reducer

(1). 汇总各个key的个数

# value  key

Stitch, 1
Stitch, 1
Stitch, 1

(2). 输出该key的总次数

# value  key

Stitch, 3

Driver

(1). 获取配置信息, 获取job对象实例

(2). 指定本程序的jar保所在的本地路径

(3). 关联Mapper/Reducer业务类

(4). 指定Mapper输出数据的kv类型

(5). 指定最终输出的数据的kv类型

(6). 指定job的输入原始文件所在目录

(7). 指定job的输出结果所在目录

(8). 提交作业










作者: 我叫史迪奇
本文来自于: https://sdq3.link/MaoReduce.html博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议