MapReduce概设

定义

MapReduce 是一个分布式运算程序的编程框架,是用户开发“基于 Hadoop 的数据分析应用”的核心框架。
MapReduce 核心功能是将用户编写的业务逻辑代码自带默认组件整合成一个完整的分布式运算程序,并发运行在一个 Hadoop 集群上。

优势劣势

优点

  1. 易于编程。用户只需要关心业务逻辑代码。实现框架的接口。
  2. 良好的扩展性:可以动态增加服务器数量,解决计算资源不够的问题。
  3. 高容错性:任何一台机器挂掉,可以将人物转移到其他节点。
  4. 适合海量数据计算(TB/PB)几千台服务器共同计算

    缺点

  5. 不擅长实时计算。【MySQL-毫秒级】
  6. 不擅长流式计算。流式计算的输入数据是动态的,而 MapReduce 的输入数据集是静态的,不能动态变化。这是因为 MapReduce 自身的设计特点决定了数据源必须是静态的。【Sparkstreaming、flink】
  7. 不擅长DAG有向无环图计算。由于每个 MapReduce 作业的输出结果都会写入到磁盘,会造成大量的磁盘 IO,导致性能非常的低下。【Spark】

WordCount案例

序列化

核心框架远离

输入的数据InputFormat

Shuffle

输出数据OutputFormat

Join

ETL

总结

压缩

有哪些压缩算法

特点

在生产环境怎么用

常见的问题及解决方案