hadoop权威指南第4版笔记

hadoop权威指南第4版笔记

第一章 初始hadoop

 1、对多个硬盘中的数据并行进行读/写数据所面临的问题有:

  1.1、第一个需要解决的问题就是硬盘的故障问题,当其中个别硬盘发生故障时,为了防止数据丢失,最常见的做法是复制(copy):系统保存数据的复本(replica),一旦有硬盘发生故障,就可以启用另外的复本。

  1.2、第二个问题就是多个分析任务需要以某种方式结合大部分数据来共同完成分析,即从一个硬盘读取的数据可能需要从另外99个硬盘中读取的数据结合使用。MapReduce提出一个编程模型,该模型抽象出这些硬盘读/写问题并将其转换为一个数据集(有键-值对组成)的计算。这样的计算由map和reduce两部分组成。

 2、MapReduce和关系型数据库的比较

  MapReduce比较适合需要以批处理方式分析整个数据集的问题,尤其是一些特定目的的分析。RDBMS适用于索引后数据集的点查询(point query)和更新,建立索引的数据库系统能够提供对小规模数据的低延迟数据检索和快速更新。MapReduce适合一次写入、多次多去数据的应用,关系型数据库则更适合持续更新的数据集。对比如下表:

对比项 关系型数据库 MapReduce
数据大小 GB PB
数据存取 交互式和批处理 批处理
更新 多次读/写 一次写入,多次读取
事务 ACID
结构 写时模式 读时模式
完整性
横向扩展 非线性的 线性的

第二章 关于MapReduce

 1、map和reduce

  MapReduce任务过程分为两个处理阶段:map阶段和reduce阶段。每个阶段都以键-值对作为输入和输出,类型由我们自己选择。我们还需要写两个函数:map函数和reduce函数。MapReduce流程如下图:

hadoop权威指南第4版笔记_第1张图片

 

 

 

 

 

2、用Java编写MapReduce程序

  编写MapReduce程序需要三样东西:map函数、reduce函数以及运行作业的代码

你可能感兴趣的:(hadoop权威指南第4版笔记)