Hadoop产生的背景
HADOOP最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。
- 基于google开源三驾马车中的GFS的开源实现
- 2003年google发表GFS论文
- 2004年hdfs开源
- 2004年“谷歌MapReduce”论文
- 2005年Nutch开源版MapReduce
- 2008年 Hadoop项目成为apache开源顶级项目
Hadoop是什么
Hadoop 是 apach 下的顶级开源项目,官网地址http://hadoop.apache.org/
Hadoop 的定义
狭义上指hadoop 的组件,hdfs、yarn、mapReduce等
广义上指以hadoop为核心的整个大数据处理体系
- hadoop
- hive
- kafka
- hbase
- zookeper
- ...
Hadoop 版本发展
-
0.x系列版本
hadoop当中最早的一个开源版本,在此基础上演变而来的1.x以及2.x的版本 -
1.x版本系列
hadoop版本当中的第二代开源版本,主要修复0.x版本的一些bug等 -
2.x版本系列
架构产生重大变化,引入了yarn平台等许多新特性,也是现在生产环境当中使用最多的版本 -
3.x版本系列
在2.x版本的基础上,引入了一些hdfs的新特性等,且已经发型了稳定版本,未来公司的使用趋势
Hadoop 生产环境版本选择
- 免费开源版本apache hadoop
- 免费开源版本hortonWorks hadoop
- ClouderaManage hadoop
针对版本的选择上,apache hadoop 开源,适合具有较强研发实力公司使用,在此基础上定制型开发同时,但存在版本兼容问题等,所以中小型公司不推荐使用。
hortonWorks hadoop 已经合并如 ClouderaManage hadoop,中小型公司推荐使用,做了版本兼容,以及一些其他优化,但不开源。
Hadoop 模块组成
- HDFS:一个高可靠、高吞吐量的分布式文件系统
- MapReduce:一个分布式的离线并行计算框
- YARN:作业调度与集群资源管理的框架
- Common:支持其他模块的工具模块。
针对现有技术发展以及趋势,安装hadoop主要就是使用yarn进行资源调度,hdfs作为文件存储系统,MapReduce分布式计算已经被spark,flink等替代。
Hadoop 的优缺点
优点
- 可构建在廉价机器上
- 高容错性
- 适合批处理
- 适合大数据处理
- 流式文件访问,一次性写入,多次读取,保证数据一致性
缺点
- 不适合低延迟数据访问
- 不适合小文件存取
- 不适合并发写入、文件随机修改,一个文件只能有一个写者 仅支持 append