前言
hadoop已经有很多资料了,所以在此只敢说整理,顺便分享下自己的想法。
我觉得,hadoop这东西要弄过搜索引擎方向最容易上手,对一个外行人,忽然介入,会遇到很多新概念和新理念。
如果你是第一次看到hadoop,那用这种说法来让你理解:
hadoop = MapReduce+HDFS(hadoop 文件系统)
进一步解释:
MapReduce是一个项目,HDFS是另一个项目,他们组成了hadoop。
是实际上这两个项目与hadoop关系 ,好比 hadoop是计算机,而MapReduce是CPU,而HDFS是硬盘,
显而易见了,MapReduce处理数据,HDFS存储数据。
hadoop是什么
摘自维基:Hadoop是Apache软件基金会所研发的开放源码并行运算编程工具和分散式档案系统,与MapReduce和Google档案系统的概念类似
摘自百度百科:hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。
小评价一下:
大家注意到,hadoop强调的是分布式文件系统(HDFS),讲了一堆好处,其实效果就是你在无需知道HDFS后台的行为的时候,他为你操作数百甚至几千台机器之间的分配。而对你来说,HDFS就是一个文件系统,你感觉就在一台机器上操作。
那再说说MapReduce, 其实Map 和 Reduce是两个函数,他们先在Map函数里整理一遍数据,再到Reduce整理数据,然后输出。(输出到哪?到输出流,你可以接着。)
hadoop版本
说标准版,也就是Apache的版本
下载地址:http://hadoop.apache.org/releases.html#Download
- 1.0.X - 当前的稳定版本, 1.0 release
- 1.1.X - 当前 beta 测试版, 1.1 release
- 2.X.X – 当前 alpha 测试版本
- 0.23.X - 与 2.X.X 版本相似 但没有NameNode的HA(High Avalability,即高可用性).
- 0.22.X - 没有包含权限认证
- 0.20.203.X - 早期稳定版本
- 0.20.X - 早期版本
具体选择哪个版本看你了,在这里提一嘴,两嘴:
1. beta测试和alpha测试的概念
beta测试在用户现场的测试,所有用户都可以用,并提出意见
alpha测试一种验收测试,由用户或第三方测试公司进行的测试,在开发方的场所,好受控
2. 就本文写成时,中文版的《hadoop权威指南》等相关书籍书籍都基于0.20.x版本居多,而自0.21版本以后,MapReduce和HDFS已经分成两个项目,目录和配置文件也有所区别。
建议版本:
如果以学习为主,我建议先以0.20.X开始,有丰富的资料可以学习。其中该版本的下载包里有0.18的中文文档,有助于学习了解hadoop.
Hadoop周边(我重点红色标注)
HBase:
类似Google BigTable的分布式NoSQL列数据库。
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群
Hive:
数据仓库工具,由Facebook贡献。Hive是一个基于Hadoop的数据仓库平台。通过hive,我们可以方便地进行ETL的工作。hive定义了一个类似于SQL的查询语言:HQL,能 够将用户编写的QL转化为相应的Mapreduce程序
Zookeeper:
分布式锁设施,提供类似Google Chubby的功能,由Facebook贡献。
ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键
Apache Avro:
新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制。
Avro(读音类似于[?vr?])是Hadoop的一个子项目,由Hadoop的 创始人Doug Cutting(也是Lucene,Nutch等项目的创始人)牵头开发。
Pig:
Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算
Sqoop:
Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导入到关系型数据库中。
Oozie
Oozie 是一个开源的工作流和协作服务引擎,基于 Apache Hadoop 的数据处理任务。Oozie 是可扩展的、可伸缩的面向数据的服务,运行在Hadoop 平台上。
Oozie 包括一个离线的Hadoop处理的工作流解决方案,以及一个查询处理 API。
本文是为了认识hadoop,所以在尽量说下浅显的东西,下面说下
hadoop的命名
简单总是最好的,“这个名字是我孩子给一个棕黄色的大象样子的填充玩具命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子是这方面的高手”Doug Cutting如是说,(后面是我说)比如谷歌, Google 是由英文单词“googol”变化而来。“googol”是美国数学家 Edward Kasner 的侄子 Milton Sirotta 创造的一个词. 说到名字一事,谷歌入驻中国,在此事上花了不少心思,借鉴了之前Yahoo和Ebay几家失败教训,最初还有很萌的“狗狗”之名。 当年“蝌蚪啃蜡”的名字杀入中国时,也是被人不待见,直到他改名成了“可口可乐”。
hadoop大事记
- 2004年,Google发表论文,向全世界介绍了MapReduce。
- 2005年初,为了支持Nutch搜索引擎项目,Nutch的开发者基于Google发布的MapReduce报告,在Nutch上开发了一个可工作的MapReduce应用。
- 2006年1月,Doug Cutting加入雅虎,Yahoo!提供一个专门的团队和资源将Hadoop发展成一个可在网络上运行的系统。
- 2008年1月,Hadoop成为Apache顶级项目
- 2008年7月,Hadoop打破1TB数据排序基准测试记录。Yahoo!的一个Hadoop集群用209秒完成1TB数据的排序 ,比上一年的纪录保持者保持的297秒快了将近90秒。
- 2009 年 3 月,Cloudera推出CDH(Cloudera’s Distribution including Apache Hadoop)平台,完全由开放源码软件组成,目前已经进入第3版。
- 2009年5月,Yahoo的团队使用Hadoop对1 TB的数据进行排序只花了62秒时间。
- 2009年7月 ,Hadoop Core项目更名为Hadoop Common;
- 2009年7月 ,MapReduce 和 Hadoop Distributed File System (HDFS) 成为Hadoop项目的独立子项目。
- 009年7月 ,Avro 和 Chukwa 成为Hadoop新的子项目。
- 2010年5月 ,Avro脱离Hadoop项目,成为Apache顶级项目。
- 2010年5月 ,HBase脱离Hadoop项目,成为Apache顶级项目。
- 2010年5月,IBM提供了基于Hadoop 的大数据分析软件——InfoSphere BigInsights,包括基础版和企业版。
- 2010年9月,Hive( Facebook) 脱离Hadoop,成为Apache顶级项目。
- 2010年9月,Pig脱离Hadoop,成为Apache顶级项目。
- 2011年1月,ZooKeeper 脱离Hadoop,成为Apache顶级项目。
- 2011年3月,Apache Hadoop获得Media Guardian Innovation Awards 。
注意红色标注,Cloudera是目前最火的hadoop“包装器”
收尾
hadoop算是有个比较泛泛的认识了,今天先这些。