3.4.1 大数据、Hadoop以及Hadoop生态的概念与区别
简介
大数据是现如今兴起的名词,提到大数据肯定少不了Hadoop、Spark、Kafka等等名词。那么Hadoop与大数据有什么关系。Hadoop又与HDFS、MapReduce、Spark有什么关系?
一句话解释版本:
大数据是与传统数据仓库相对应的概念,它是一种理念与方法。
Hadoop是与Oracle、Teradata相对应的概念,它是实现大数据理念的手段与工具。
Hadoop是一个内核与一大堆组件共同组合成的生态系统。
大数据的概念
与传统数据仓库一样,大数据也是数据存储与处理的一种方式。
近年来,数据量的爆炸性增长使得传统数据仓库无法满足海量数据的存储、处理、挖掘等需求。大数据从3个角度填补了传统数仓的缺陷。
- 存储量
由于数据源的多样化,企业数据由之前的交易数据拓展现在的行为数据、竟对数据、CRM、 财务数据。很多企业也获得了大量的实时数据。
因此,数据量的增长使得大多数数据仓库很难存储PB,甚至EB级别数据。大数据则给这种存储提供了可能性。
- 成本
海量数据带来的结果就是昂贵的存储成本。
在传统数据仓库中,加硬盘、扩容、加节点,都是极其费成本的措施。之前由于数据的增长幅度不明显,历史数据保存时间较短,因此不会出现频繁扩容的情况。但是由于数据源与数据量的暴涨,数仓扩容越来越频繁,维护成本越来越高昂。大数据则提供了廉价的数据存储方式,使得海量的数据能够用低成本维护。
- 速度
海量数据的存储紧接着就是海量数据的挖掘与分析。在大多数传统数据仓库中,一旦存储的数据量达到一定程度,一旦设计不当,非常有可能计算速度显著变慢。这种计算速度的迟缓在数据达到PB级时会很显著。因此,在这之上,机器学习与深度学习更是不可能,因此一个SELECT * FROM语句都会无比的慢。
大数据也相对的弥补了这一点,它使得数据的处理、运算、挖掘变得更快。为海量数据的应用提供了更多可能。
大数据与Hadoop
提到大数据,就会提到Hadoop。
就像Teradata、Oracle、MySQL是传统数据仓库的实现工具一样,Hadoop也是大数据的实现方式。大数据与数据仓库一样,都是一种数据存储与处理的概念。但是Hadoop是真正实现大数据理念的工具。它是实际的代码与软件,实现了大数据传达的海量数据低成本存储,快速数据处理的理念。
Hadoop生态
2006年项目成立的时候,“Hadoop”只代表了两个组件:HDFS与MapReduce。但现在,Hadoop代表“核心”(Core Hadoop项目)以及与之相关的的生态系统。
Hadoop是由一个核心和一个生态系统组成。
下图是Hadoop核心以及一些运用场景较多的组件介绍。
在hadoop的发展过程中,越来越多的组件被开发出来,并融合到Hadoop这个大环境中。我们可以想象,一开始,Hadoop只是一个小小的内核,随着时间,内核周围包裹了一层一层的组件,它变得越来越庞大。
所以现在,提到Hadoop,提到大数据时,往往指的是Hadoop的核心以及那些围绕在核心四周的组件。我们经常听说的Spark、Kafka,Hbase这些概念,都是作为Hadoop的拓展组件出现的。