Hadoop学习笔记 — 初识Hadoop

By timebusker on June 1, 2018

Hadoop——一个数据存储和分析的分布式系统、计算框架:分布式、可靠、可伸缩、搜索引擎、海量数据存储

Hadoop历史

  • 雏形开始于2002年的Apache的Nutch,Nutch是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。

  • 随后在2003年Google发表了一篇技术学术论文谷歌文件系统(GFS)。GFS也就是google File System,google公司为了存储海量搜索数据而设计的专用文件系统。

  • 2004年Nutch创始人Doug Cutting基于Google的GFS论文实现了分布式文件存储系统名为NDFS。

  • 2004年Google又发表了一篇技术学术论文MapReduce。MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行分析运算。

  • 2005年Doug Cutting又基于MapReduce,在Nutch搜索引擎实现了该功能。

  • 2006年,Yahoo雇用了Doug Cutting,Doug Cutting将NDFS和MapReduce升级命名为Hadoop,Yahoo开建了一个独立的团队给Goug Cutting专门研究发展Hadoop。

Hadoop解决的问题

image

相对于其他系统的优势

相对于关系型数据库
  • 为什么不通过使用数据库加上更多磁盘来做大规模批量分析?为什么我们还需要MapReduce?
    • 磁盘驱动器寻址时间的速度远远慢于传输速率的提升速度,寻址就是将磁头移动到特定位置进行读写操作的工序,它的特点是磁盘操作有延迟, 而传输速率对应磁盘的带宽。如果数据的访问受限于磁盘的寻址,势必会导致它花更长的时间来读或写大部分数据。
    • 在更新一小部分数据的情况下,传统的B树效果很好,但在更新大部分数据时,B树的效率就没有MapReduce的高, 因为它需要使用排序/合并来重建数据库。
    • 在很多情况下,MapReduce能够被视为一种RDBMS的补充,MapReduce很适合处理那些需要分析整个数据集的问题,以批处理的方式, 尤其是Ad Hoc(自主或即时)分析。RDBMS适用于点查询和更新。
      image
  • 数据结构化程度
    • 结构化数据是具有既定格式的实体数据,是指可以使用关系型数据库表示和存储,表现为二维形式的数据。一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。
    • 半结构化数据是结构化数据的一种形式,它并不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层。因此,它也被称为自描述的结构。,属于同一类实体可以有不同的属性,即使他们被组合在一起,这些属性的顺序并不重要。常见的半结构数据有XML和JSON。
    • 非结构化数据,就是没有固定结构的数据。各种文档、图片、视频/音频等都属于非结构化数据。对于这类数据,我们一般直接整体进行存储,而且一般存储为二进制的数据格式。

高性能计算和网格计算能力