《Hadoop权威指南》---初识Hadoop

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hy_coming/article/details/82465124

一、数据

对于目前这个信息爆炸的时代,也就是我们所说的大数据时代,信息存储的体量是越来越大,存储和分析的难度也是越来越大,可是在解决这个问题之前我们来了解一下数据存储单位:

1ZB=1000EB=1000000PB=1000000000TB=10^21B

二、数据存储与分析

其实造成数据分析慢的主要原因是磁盘数据读取数据,于是我们的想法是能不能把数据分配到多个磁盘上,然后并行读取来缩减时间,但是这种对多个磁盘数据进行并行读取,需要解决以下问题

  • 硬件故障,一旦使用多个硬件,其中一个硬件发生故障的概率非常高,所有又需其他的硬件进行备份
  • 大多数分析任务需要以某种方式结合大部分数据共同完成分析任务

为了解决以上问题,MapReduce提出一个编程模型,该模型将上述磁盘读写的问题进行抽象,并转换成对一个数据集(由键值对组成)的计算。简单来说,Hadoop提供了一个可靠的共享存储和分析系统,HDFS实现存储,MapReduce实现分析处理。

三、与其他系统相比

MapReduce是一个批量查询处理器,每个查询需要处理整个数据集,或者至少数据集很大一部分,能够在合理的时间范围内处理针对整个数据集的即时查询,改变了我们对数据的传统看法。

四、关系型数据库管理系统

目前磁盘发展的一个趋势就是,寻址时间的提高远远慢于传输速率的提高,寻址是将磁头移动到特定的磁盘位置进行读写操作的过程,他是导致磁盘操作的主要原因,而传输速率取决于磁盘的宽度。所以按照道理来说,一个操作需要包含大量的寻址操作,那势必会需要更多的时间,所以对于更新数据库系统中的大部分数据的时候,就需要MapReduce的帮助,因为需要“排序/合并”,但是当更新很小一部分数据的时候,数据库传统的B树还是有一定优势的。看到这里我们可以认为MapReduce是关系型数据库的一种补充,下面的一张图是两者的区别

五、网络计算

高性能计算的方法是将作业分散到集群的各台机器上,这些机器由存储区域网络组织的共享文件系统,这比较适用于计算密集型的作业,但如果节点需要访问更大量的数据,那么很多计算机节点会由于网络宽带的瓶颈问题而空闲下来等待数据。这个时候MapReduce就开始发挥他的优势,他会尽量在计算节点上存储数据,以实现数据的本地快速访问。数据本地化特征是MapReduce的核心特征,并因此获得良好的性能,意识到网络宽带是数据中心环境最珍贵的资源,MapReduce通过显示网络拓扑结构尽力保留网络宽带,并且这种方式不降低其数据分析能力。

六、志愿计算

志愿计算项目将他们试图解决的问题分成多个块,每个块称为一个工作单元,并将他们发到世界各地的电脑上进行分析。如SETI@home项目,表面上看这个项目 与MapReduce比较相似,但是又存在很大的区别,前者问题是CPU高度密集的,比较适合全世界成千上万的计算机上运行,因为用于计算的时间会远大于工作单元数据的传输时间,志愿者贡献的是CPU周期,而不是网络宽带,后者的设计目标是服务于那些只需要数分钟或者是数小时即可完成的作业,并且运行与内部通过高速网络连接的单一数据中心内,并且该数据中心内的计算机需要由可靠的、定制的硬件构成。

七、Hadoop发展简史

Hadoop是Apache Lucene创始人Doug Cutting创建的,Lucene是一个广泛使用的文本搜索系统库,Hadoop起源于Apache Nutch,一个开源的网络搜索引擎,本身也是Lucene项目的一部分。2006年2月,Hadoop项目正式成为Lucene项目的一个子项目,2008年1月,Hadoop项目已经成为Apache的顶级项目,2008年4月,打破世界纪录,成为最快的TB级数据排序系统。下面来看看大事记和子项目

  • 2011年12月27日--1.0.0版本释出。标志着Hadoop已经初具生产规模。

    2009年4月-- 赢得每分钟排序,59秒内排序500 GB(在1400个节点上)和173分钟内排序100 TB数据(在3400个节点上)。

    2009年3月-- 17个集群总共24 000台机器。

    2008年10月-- 研究集群每天装载10 TB的数据。

    2008年4月-- 赢得世界最快1 TB数据排序在900个节点上用时209秒。

    2007年4月-- 研究集群达到两个1000个节点的集群。

    2007年1月-- 研究集群到达900个节点。

    2006年12月-- 标准排序在20个节点上运行1.8个小时,100个节点3.3小时,500个节点5.2小时,900个节点7.8个小时。

    2006年11月-- 研究集群增加到600个节点。

    2006年5月-- 标准排序在500个节点上运行42个小时(硬件配置比4月的更好)。

    2006年5月-- 雅虎建立了一个300个节点的Hadoop研究集群。

    2006年4月-- 标准排序(10 GB每个节点)在188个节点上运行47.9个小时。

    2006年2月-- 雅虎的网格计算团队采用Hadoop。

    2006年2月-- Apache Hadoop项目正式启动以支持MapReduce和HDFS的独立发展。

    2006年1月-- Doug Cutting加入雅虎。

    2005年12月-- Nutch移植到新的框架,Hadoop在20个节点上稳定运行。

  • Hadoop Common: 在0.20及以前的版本中,包含HDFS、MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Common

    HDFS: Hadoop分布式文件系统(Distributed File System) - HDFS (Hadoop Distributed File System)

    MapReduce并行计算框架,0.20前使用 org.apache.hadoop.mapred 旧接口,0.20版本开始引入org.apache.hadoop.mapreduce的新API

    HBase: 类似Google BigTable的分布式NoSQL列数据库。(HBaseAvro已经于2010年5月成为顶级 Apache 项目)

    Hive:数据仓库工具,由Facebook贡献。

    Zookeeper:分布式锁设施,提供类似Google Chubby的功能,由Facebook贡献。

    Avro:新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制。

    Pig: 大数据分析平台,为用户提供多种接口。

    Ambari:Hadoop管理工具,可以快捷的监控、部署、管理集群。

    Sqoop:于在HADOOP与传统的数据库间进行数据的传递。

猜你喜欢

转载自blog.csdn.net/hy_coming/article/details/82465124