什么是 Hadoop ?

今夜我们聊聊大数据之四

Google 提出了其用于自身数据处理的三篇论文,但是这个是 Google 的命根子,并没有开源,当时甚至连对外的应用都没有。

如同Linux 对于 Unix,聪明的程序员们总有办法克隆。

Yahoo 公司彼时还如日中天(如今,2016年3月,看到的新闻已经是 Yahoo 在寻找卖家了),其中的道格·卡汀,这位神一般的人物,在 Yahoo 组织开发了 Hadoop。而 Hadoop 这个单词就是以他儿子的一只大象绒毛玩具命名的。(这位仁兄后来创建了基于 Hadoop 的 Cloudera,几乎可以说是 Hadoop大数据实际应用领域最牛的软件公司。某种程度上回答一下开源软件不要钱,那么写开源软件的人怎么活下来的问题,软件还是需要实施和服务的,且每个公司的应用场景都不一样,所以这个还是可以赚钱的。)

hadoop

有据可查的 Hadoop 是在 2006年1月,在 Apache 上建立,包括使用了邮件列表、 Jira 和 wiki。到2015年6月,最新的 Hadoop 版本是 2.7。

中文维基百科对于 Hadoop 的定义非常清楚:” Hadoop框架透明地为应用提供可靠性和数据移动。它实现了名为MapReduce的编程范式:应用程序被分区成许多小部分,而每个部分都能在集群中的任意节点上运行或重新运行。此外,Hadoop还提供了分布式文件系统,用以存储所有计算节点的数据。MapReduce和分布式文件系统的设计,使得整个框架能够自动处理节点故障。它使应用程序与成千上万的独立计算的电脑和PB级的数据。现在普遍认为整个Apache Hadoop“平台”包括Hadoop内核、MapReduce、Hadoop分布式文件系统(HDFS)以及一些相关项目,有Apache Hive和Apache HBase等等。”

这段话要说解释,估计还要几万字。我们先把里面最基本的概念解释一下,之后各个击破,在以后的文字中介绍。

框架:在编程领域里面,框架一般指一套开发方法,包括开发项目的方法、各类工具、各类基础的程序函数、测试方法、服务器或应用的部署等。遵循某种框架可以既不失灵活性,又享受成熟的基础概念带来的好处。

MapReduce:这是Hadoop 的灵魂之一,形象的说就是把要一个人干十天的事情,转化为十个人用一天做。怎么把事情分解、然后再汇聚在一起,还要协调十个人的关系,这就是 MapReduce 要做的。Map 就是分解, Reduce 则是汇聚。理解了MapReduce ,就能明白为什么大数据的应用有很多泡沫、这两年横空出世的 Spark 为何又大大提高了运算速度等大数据领域中的爱恨情仇。

分布式文件系统:在 Hadoop 里面,一般称为 HDFS,我们的500G 的笔记本上找一个文件有时候都会觉得很慢,在windows 系统下要等好久,那么海量数据在服务器上怎么存储、怎么查找、怎么保证数据不坏等,这些是大数据应用的基石。

Hive、Hbase:在 Hadoop里面,有很多这样的名词,绝大多数都是为了传统数据库的使用者便于转换到 Hadoop 平台而诞生的项目,比如 Hive 可以理解为用 SQL 语句来搜索, Hbase可以按照字面理解为基于 Hadoop 文件系统的一种数据库。

对于 Hadoop 做了简单的名词解释,之后再聊聊大数据到底能做什么,和传统的非大数据有什么区别,大数据的理念如何应用。

Leave a Reply