前言
在当今大数据时代,回顾技术发展历程,Hadoop作为一项具有里程碑意义的开源项目,在大数据存储和处理领域曾一度占据主导地位。诞生于2005年的Apache Hadoop,以其独特的分布式文件系统(HDFS)和高效的并行计算框架(MapReduce),为海量数据的高效存储、管理和分析提供了有力支持。
时至今日,当我们重新审视Hadoop这一经典组件时,有必要对其核心技术架构、功能特点以及在现代数据处理体系中的角色变化进行全面梳理,以便更好地理解其历史贡献及未来可能的发展方向。
发展历史
2004年,Doug Cutting受到Google发表的GFS(Google File System)和MapReduce论文启发,开始了Hadoop分布式文件系统(HDFS)和MapReduce计算框架的初步研发工作。
- 2005年底,Hadoop作为一个独立项目从Nutch中剥离出来,并在Apache软件基金会成为顶级项目。
- 同年,Hadoop在20个节点上稳定运行,展现出处理大规模数据的能力。
Hadoop的第一个稳定版于2011年发布,形成了以HDFS和MapReduce为核心的Hadoop 1.0版本。
随着Hadoop的发展,为了提高资源利用率和兼容更多的计算框架,Apache推出了Hadoop 2.0,引入了全新的资源管理器YARN(Yet Another Resource Negotiator),实现了更灵活的多租户和多种计算框架共存的架构。
之后几年间,围绕Hadoop形成了庞大的生态系统,包括Pig、Hive、HBase、ZooKeeper、Sqoop、Oozie等多种组件和服务,这些工具和服务极大地丰富了Hadoop的应用场景和能力范围。
生态介绍
这个生态最早被称作动物园:
Hadoop生态之所以被称为"动物园",是因为在其发展早期,围绕Hadoop形成了一个包含众多以动物名称命名的项目和组件的生态系统。这些项目通常都有各自的动物图标,比如Hadoop本身(大象)、Hive(蜂巢)、Pig(猪)、HBase(海狸)、ZooKeeper(动物园管理员)、Flume(鹈鹕)、Chukwa(鹤)、Avro(鸟)、Kafka(猿猴)、Mahout(大象训练师,后来不再沿用动物名但最初也是)等等。
主要特性
- 资源利用率高,共享集群模式通过多种框架共享数据和硬件资源,减小数据移动成本;
- 运维成本低,共享模式少数管理员即可完成多个框架的统一管理;
- 良好的扩展性,可通过添加机器达到线性扩展集群能力的目的;
- 高容错性,计算迁移或数据迁移等策略提高集群的可用性与容错性;
- 易于编程,简化分布式程序设计提高开发效率。
- YARN基于标签的调度解决的核心需求是实现部分资源的完全隔离,以及由此基础之上的各个资源池之间的资源互助,最终达到隔离并且弹性的计算形态。其作用是划分集群、指定标签资源百分比,分配给队列。
应用场景
• 数据密集型 并行计算 :数据量极大,但是计算相对简单的 并行处理 ,例如大规模 Web 信息搜索
• 计算密集型并行计算 :数据量相对不是很大,但是计算较为复杂的并行计算,例如气象预报,科学计算
• 数据密集与计算密集混合型的 并行计算