全书目前刚看到3.2,博客进度会慢一些,很多问题和例子需要操作一遍才能弄清楚。


Why Hadoop


解决的问题

数据存储与分析

在硬盘存储容量多年来不断提升的同时,访问速度却没有与时俱进。

为此,我们使用了多个硬盘并行读/写的方法。但这同样会产生新的问题。主要的两个问题就是如何应对可能出现的硬件故障,以及如何在分析不同来源的数据时保证正确性。

而Hadoop就为我们提供了一个可靠的大数据存储和分析平台,其中HDFS提供存储功能,MapReduce提供分析功能,这也是Hadoop的两个基本核心。


Hadoop的优势

RDBMS

  • 硬盘的寻址时间的提升远远不敌于传输速率的提升。因此在读取大量数据集时,采用流数据读取模式(速率主要取决于传输速率)会快得多。并且在有大量数据更新时,RDBMS采用的B树的效率就明显落后于MapReduce,因为需要使用“排序/合并”来重建数据库;
  • MapReduce适合解决需要以批处理方式分析整个数据集的问题(特别对于一些特定目的);RDBMS适用于索引后数据集的点查询和更新(小规模数据);
  • MapReduce适合一次写入、多次读取,RDB则更适合持续更新的数据集。

Meet Hadoop-LMLPHP

网格计算

  • 网格计算适用于计算密集型作业,如果节点的数据访问量过大,就会受到网络带宽的限制;Hadoop则尽量在计算节点上存储数据,以实现数据的本地快速访问,这也是Hadoop数据处理的核心;
  • MPI(消息传递接口)需要程序员显式处理数据流机制;而Hadoop的数据流对程序员是隐性的,仅需从数据模型的角度考虑任务的执行;
  • MapReduce能自动处理系统地部分失效问题,程序员无需关注任务的执行顺序;而MPI程序则必须显式管理紫的检查点和恢复机制,编程难度大。

志愿计算

志愿计算面对的问题是CPU高度密集的,计算所花的时间远超过工作单元数据的传输时间,并且是在接入互联网的不可信的计算机上长时间运行,这些计算机网络带宽不同,对数据本地化也没有要求。而MapReduce的设计目标则是在可靠、专门、运行于同一个内部有高速网络连接的计算机们上,为只需要短时间就能完成的作业提供服务。


小黄象Hadoop?

Hadoop是Hadoop之父Doug Cutting的孩子给他的毛绒象玩具取的名字,没错就是官网上那只愉快的elephant。

HDFS和MapReduce的思想则来源于谷歌的两篇论文的启发(万物基于谷歌):The Google File SystemMapReduce: Simplified Data Processing on Large Clusters

具体的那些年的Hadoop可以自行翻书,还是挺有趣的,可惜现在雅虎已凉。


学习路线

这是书本中给出的学习路线图,我目前还是按照章节顺序学习,不过因为Hadoop需要使用Linux和JAVA,所以这两方面也会补充。

Meet Hadoop-LMLPHP


简单总结

第一章主要是关于为什么要创建Hadoop,这不是简单地用Hadoop的运行原理能解释的,它跟时代的发展密切相关。

之后将会进入到Hadoop本身的学习,而不仅仅是Hadoop,关于Linux和Java的相关内容也会更新,,为了在Linux上装个Hadoop我也是历尽艰辛了。。

暂时这样。

04-21 00:11