《Hadoop权威指南》阅读笔记(1)

第一章:初识Hadoop

开头的Grace Hopper的话就让我印象深刻:古时候人们用牛来拉重物,当一头牛拉不动的时候,人们从来没有考虑过要想方设法培育出一头更强壮的牛。同理,我们也不应该去想方设法的研发超级计算机,而是去利用更多计算机来解决问题。也许这就是早期人们研究分布式的一些灵感吧。

文章目录

    • 第一章:初识Hadoop
      • 1、数据的存储与分析
      • 2、Hadoop的优势
      • 3、Apache Hadoop的发展简史


1、数据的存储与分析

在这个数据爆炸的时代,我们已经有了大量的数据,那么问题来了,我们怎么去分析和存储这些数据?

问题很简单,在硬盘存储容量多年来提升的同时,硬盘的读取速度却并没有与时俱进。原先五分钟就可以读完的硬盘,现在却要用好几个小时,是我们倒退了吗?可能我们要换个思路,用多个硬盘同时存储,并行读取,是不是会快很多。

虽然如此,但是问题也就随即而来。一个是硬件故障问题,最好的解决方案就是replica复本。另一个就是正确性的保障。因此,Hadoop应运而生,最早的版本中,HDFS和MapReduce分别解决了这两个问题,它为我们提供了一个可靠且可扩展的存储和分析平台。

2、Hadoop的优势

在过去的几年里,出现了许多不同的、能与Hadoop协同工作的处理模式,比如interacting SQL交互式SQL、iterative processing迭代处理、Streaming processing流处理、Search搜索等。

为什么不能用配有大量硬盘的数据库来进行大规模数据分析?为什么用Hadoop?
这两个问题来源于计算机硬盘的发展趋势:寻址时间的提升远远不敌于传输速率的提升。如果数据库系统只更新一小部分记录,那么传统的B树就更有优势。但数据库系统有大量数据更新时,B树的效率就明显落后于MapReduce,因为需要使用“排序/合并”来重建数据集。

许多情况下,可以将MapReduce视为关系型数据库管理系统的补充。Mark C. Chu-Carroll的文章很好的阐述了这一观点,标题为“Databasesare hammers;MapReduce is a screwdriver”(如果说数据库是锤子,MapReduce则是螺丝刀)。

另外,Hadoop对非结构化或半结构化的数据非常有效,因为他是在处理数据时才对数据进行解释,即“读时模式”。这种模式在提供灵活性的同时避免了RDBMS数据加载阶段带来的高开销,因为在Hadoop中仅仅是一个文件的copy操作。Web服务器日志是典型的非规范数据记录,这也是Hadoop非常适用于分析各种日志文件的原因之一。

3、Apache Hadoop的发展简史

Hadoop是Apache Lucene创始人Doug cutting创建的。最早起源于Nutch,它是Lucene的子项目。Nutch的设计目标是构建工个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题:如何解决数十亿网页的存储和索引问题。

2003年Google发表了一篇论文为该问题提供了可行的解决方案。论文中描述的是谷歌的产品架构,该架构称为:谷歌分布式文件系统(GFS),可以解决他们在网页爬取和索引过程中产生的超大文件的存储需求。

2004年Coogle发表论文向全世界介绍了谷歌版的MapReduce系统。同时期,Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到2008年1月,HADOOP成为Apache顶级项目,迎来了它的快速发展期。

2006年Google发表了论文是关于BigTable的,这促使了后来的Hbase的发展因此,Hadoop及其生态圈的发展离不开Google的贡献。
《Hadoop权威指南》阅读笔记(1)_第1张图片
狭义上说,Hadoop指Apache的开源框架,它的核心组件有:
HDFS(分布式文件系统)
YARN(作业调度和集群资源管理的框架)
MAPREDUCE(分布式运算编程框架)

Hadoop通常指一个更广泛的概念——Hadoop生态圈。比如:
HDFS:分布式文件系统
MAPREDUCE:分布式运算程序开发框架
HIVE:基于HADOO的分布式数据仓库,提供基于SOL的查询数据操作
HBASE:基于HADOOP的分布式海量数据库
Z00KEEPER:分布式协调服务基础组件
Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库
0ozie:工作流调度框架
Sqoop:数据导入导出工具(比如用于mysql和HDFS之间)
Flume:日志数据采集框架
Impala:基于Hadoop的实时分析
等等。。。

你可能感兴趣的:(Hadoop权威指南,阅读笔记,hadoop,大数据)