一.Hadoop发展史
1.Hadoop是ApacheLucene创始人Doug Cutting创建的,Lucene是一个广泛使用的文本搜索系统库(一个可以运行的网页爬取工具和搜索引擎系统)。Hadoop起源于Apache Nutch,一个开源的网络搜索引擎,它本身也是Lucene项目的一部分。
二.Hadoop是开源系统,它实现了MapReduce编程模型。
MapReduce编程模型有三方面的优势:
1. MapReduce所采用的是无共享大规模集群系统。集群系统具有良好的性价比和可伸缩性,这一优势伟MapReduce成为大规模海量数据平台的首选。
2. MapReduce模型简单,易于理解,易于使用。很多机器学习和数据挖掘算法,都可以使用MapReduce.
3. 通过使用合适的查询优化和索引技术,MapReduce仍然能够提供相当好的数据处理性能。
注:MapReduce是一个批量查询处理器,并且它能够在合理的时间范围内处理针对整个数据集的即时(ad hoc)查询。
三.磁盘的发展趋势:
1. 寻址时间的提高远远慢于传输速率的提高。
2. 寻址是将磁头移动到特定磁盘位置进行读写操作的过程。它是导致磁盘操作延迟的主要原因,而传输速率取决于磁盘的带宽。
四.MapReduce视为关系型数据库管理系统的补充
1.RDBMS适用于”点查询”(point query)和更新,数据集被索引后,数据库系统能够提供低延迟的数据检索和快速的少量数据更新。
2.MapReduce适合一次写入,多次读取数据的应用,而关系数据库更适合持续更新的数据集。
注:MapReduce是一种线性可伸缩的编程模型。程序员编写两个函数,分别为map函数和reduce函数——每个函数定义一个键/值对集合到另一个键/值对集合的映射。
五.Hadoop项目简述
1.Common,一组分布式文件系统和通用I/O的组件与接口(系列化,javaRPC和持久化数据结构)
2.Avro,一种支持高效,跨语言的RPC以及永久存储数据的系列化系统。
3.MapReduce,分布式数据处理模型和执行环境,运行于大型商用机集群。
4.HDFS,分布式文件系统,运行于大型商用机集群。
5.Pig,一种数据流语言和运行环境,用以检索非常大的数据集。Pig运行在MapReduce和HDFS的集群上。
6.Hive,一个分布式,按列存储的数据仓库。Hive管理HDFS中存储的数据,并提供基于SQL的查询语言(由运行时引擎翻译成MapReduce作业)用以查询数据。
7.HBase,一个分布式,按列存储数据库。HBase使用HDFS作为底层存储,同时支持MapReduce的批量式计算和点查询(随即读取)
8.Zookeeper,一个分布式,可用性高的协调服务。Zookeeper提供分布式锁之类的基本服务用于构建分布式应用。
9.Sqoop,在数据库和HDFS之间高效传输数据的工具。