谁说大象不会跳舞
Hadoop是什么
官网定义:The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models.
Hadoop: 适合大数据的分布式存储和计算平台
现为Apache顶级开源项目,Hadoop不是指具体一个框架或者组件,它是Apache软件基金会下用Java语言开发的一个开源分布式计算平台。实现在大量计算机组成的集群中对海量数据进行分布式计算,适合大数据的分布式存储和计算平台。
举个简单例子:假如说你有一个篮子水果,你想知道苹果和梨的数量是多少,那么只要一个一个数就可以知道有多少了。如果你有一个集装箱水果,这时候就需要很多人同时帮你数了,这相当于多进程或多线程。如果你很多个集装箱的水果,这时就需要分布式计算了,也就是Hadoop。Hadoopd之所谓会诞生,主要是由于进入到大数据时代,计算机需要处理的数据量太过庞大。这时就需要将这些庞大数据切割分配到N台计算机进行处理。当大量信息被分配到不同计算机进行处理时,要确保最终得到的结果正确就需要对这些分布处理的信息进行管理,hadoop就是这样的一套解决方案。
Hadoop的起源
Hadoop起源于Google的三大论文 ,GFS ,BigTable和MapReduce。受此启发的Doug Cutting(Hadoop之父)等人用业务时间实现了DFS和MapReduce机制。2006年2月被分离出来,成为一套完整独立的软件,起名为Hadoop。
Hadoop的成长过程经历了:Lucene–>Nutch—>Hadoop
三篇论文的核心思想逐步演变,最终:
GFS—->HDFS
Google MapReduce—->Hadoop MapReduce
BigTable—->HBase
Hadoop版本与架构核心
Apache开源社区版本,现已到3.x
Hadoop1.0版本两个核心:HDFS+MapReduce
Hadoop2.0版本,引入了Yarn。核心:HDFS+Yarn+Mapreduce
Yarn是资源调度框架。能够细粒度的管理和调度任务。此外,还能够支持其他的计算框架,比如spark等。
Hadoop3.0版本,未引入新核心,在原核心上,升级了很多东西。具体看参见官网
Hadoop理念
Hadoop可运行于一般的商用服务器上,具有高容错、高可靠性、高扩展性等特点
特别适合写一次,读多次的场景
适合场景
- 大规模数据
- 流式数据(写一次,读多次)
- 商用硬件(一般硬件)
不适合场景
- 低延时的数据访问
- 大量的小文件
- 频繁修改文件
PS
Hadoop起源的三个google论文 中文版
GFS Google的分布式文件系统Google File System
BigTable 一个大型的分布式数据库
MapReduce Google的MapReduce开源分布式并行计算框架