认识Hadoop了解Hadoop

一、Hadoop的起源

Hadoop的起源可以追溯到2002年的Apache Nutch项目。

Hadoop的发展史是大数据技术演进的一个缩影。最初,它只是作为一个开源搜索引擎Nutch的底层存储和处理框架,但随着网页数据的爆炸式增长,Nutch面临了巨大的可扩展性挑战。这一挑战催生了Hadoop的诞生。Google在2003年和2004年发表的两篇论文——描述GFS(Google File System)和MapReduce计算模型——为解决海量数据处理问题提供了理论基础。

Hadoop的创始人Doug Cutting和他的团队受到这些论文的启发,开始着手实现一个类似GFS的分布式文件系统和MapReduce编程模型。这些组件最初被集成在Nutch项目中,但很快它们就被证明有更广泛的应用潜力。2006年,这些组件从Nutch中剥离出来,形成了独立的Hadoop项目,并迅速成长为Apache软件基金会的顶级项目之一。Hadoop以其高可靠性、高扩展性和低成本的优势,成为大数据处理领域的核心工具。

Hadoop的设计充分考虑了大规模集群的运行需求。其核心组件HDFS允许数据在集群的各个节点间分布式存储,提供高吞吐量的数据访问。而MapReduce则将计算任务分发到各个节点上并行处理,大大加快了数据处理速度。这种设计使得Hadoop能够有效处理PB级甚至更大的数据集,满足现代互联网企业对数据处理的巨大需求。

Hadoop的发展历程同样引人注目。从2006年的起步到成为Apache的顶级项目,再到后来的多个商业版本如Cloudera和Hortonworks的出现,Hadoop一直在快速进化。这个过程中,它不仅促进了整个大数据生态系统的繁荣,还推动了相关技术和架构的创新。例如,HBase作为Google BigTable的灵感产物,以及YARN作为MapReduce的资源管理系统,都是在这一过程中发展起来的。

总的来说,Hadoop的起源和早期发展揭示了它是如何从一个搜索引擎项目的辅助工具,发展成为支撑大数据时代核心技术的重要性。通过不断的技术创新和社区的共同努力,Hadoop已经成为了处理海量数据集不可或缺的工具。
 

Hadoop图标,注:名字来源于 Doug Cutting 儿子的玩具大象。

二、Hadoop的特点优势

1、高可靠性:Hadoop在处理数据时会将数据备份多份分发至不同的机器进行保存,此举确保了即使部分节点出现故障,数据也不会丢失,保证了数据处理的安全性与可靠性。
当计算任务失败时,Hadoop能够自动重新分配任务到其他节点,避免单点故障影响整个作业的执行。

2、高扩展性:能够处理PB级别的数据,通过增加更多的节点来扩展系统容量,满足不断增长的数据处理需求。使用Hadoop的处理任务可以从几个节点扩展到数千甚至更多节点上,实现水平扩展。

3、高容错性:采用分布式存储技术,数据自动复制到多个节点,即使部分节点发生故障,也能保证数据的完整性和系统的连续运行。在任务执行过程中,如果某节点失效,Hadoop能够自动重新分配任务到其他节点继续执行,保障了计算任务的顺利完成。

4、成本效益:相比传统的大型关系数据库,Hadoop的成本更低,因为它可以运行在廉价的硬件上,大大降低了IT成本。开源的特性使得用户可以免费使用这一平台,降低了使用门槛。

5、数据处理速度快:能够高效地处理大批量的数据,得益于其分布式计算的优势,可并行处理大量数据,显著提高数据处理速度。通过MapReduce编程模型,能够在不同节点上并行处理数据,加快数据分析和处理的速度。

6、处理多种数据类型:处理不同类型的数据,包括结构化数据和非结构化数据,如文本、图片、视频和音频。适用于多种应用场景,如批处理分析、数据仓库、海量存储、文本挖掘和机器学习。

7、高速运算和存储能力:实现了一个分布式文件系统(HDFS),为海量的数据提供了存储,而且它提供高吞吐量的数据访问,适合超大数据集的应用程序。
框架核心设计包括HDFS和MapReduce,分别提供数据存储和计算能力,共同支持大数据软件系统的运行。

总的来说,Hadoop以其高可靠性、高扩展性、高容错性、成本效益、高速数据处理能力和对多种数据类型的支持等优点,成为了处理大规模数据集的优选平台。这些特性不仅提高了数据处理的效率和可靠性,还降低了成本,使得企业和组织能够更有效地管理和分析日益增长的数据。

三、Hadoop的组成架构

Apache Hadoop的组成架构是理解其如何在大数据处理中发挥核心作用的关键。Hadoop的设计旨在利用分布式计算资源,通过横向扩展的方式,处理和存储海量数据。这种架构不仅提高了数据处理的效率,还提升了系统的容错能力和可靠性。

Hadoop 1.x 和 hadoop 2.x 的区别地方:

1、 Hadoop Distributed File System (HDFS):
HDFS是设计来在多台机器上存储大量数据的。它通过将数据分成块并在不同的节点上存储这些块来实现这一点,从而使得每个节点都可以参与数据的存储和处理。
所有文件系统操作的元数据都由一个中央服务器NameNode管理,而实际的数据块则存储在多个DataNodes上。这种结构使得HDFS可以扩展到非常大的数据集,同时保持高可用性和容错性。

2、Hadoop YARN (Yet Another Resource Negotiator):
YARN是Hadoop的资源管理层,负责协调集群资源并管理用户应用程序。YARN的出现让Hadoop从单一的MapReduce计算模型扩展到支持多种计算框架,如Spark和Tez等。
YARN主要由ResourceManager、NodeManager和ApplicationMaster三个组件构成,其中ResourceManager负责全局的资源管理与分配。

3、Hadoop MapReduce:
MapReduce是用于大规模数据集并行处理的编程模型。它包括两个基本的操作:Map和Reduce,用户可以编写这两个函数来完成复杂的数据处理任务。
MapReduce作业由JobTracker进行调度和监控,而实际的任务(Map任务和Reduce任务)则在各个节点上的TaskTracker执行。

4、Hadoop Common:
Hadoop Common包含了Hadoop通用的库和实用工具,它们是Hadoop其他模块运行的基础。例如,Hadoop Common提供了Java库,用于处理原始网络协议、Java I/O等。

5、Hive与HBase:
Hive是一个基于Hadoop的数据仓库工具,可以将SQL语句转换为MapReduce任务,使数据查询变得更加容易。HBase是一种NoSQL数据库,提供高吞吐量的随机访问到大规模数据集,它是构建在HDFS之上的,适合实时读写访问大数据

四、Yarn 结构

Apache Hadoop Yarn(Yet Another Resource Negotiator)的架构设计是实现大数据处理中资源管理和作业调度的关键。以下将深入探讨Yarn的结构概述,了解其如何在Hadoop生态系统中提供高效、可扩展的资源管理能力。

 1、ResourceManager(RM):ResourceManager是Yarn中的中心组件,负责管理整个集群的资源和使用情况。它包括两个主要组成部分:一个是Scheduler,负责具体的资源分配和调度任务;另一个是ApplicationManager,负责接收新的应用程序请求,并管理应用程序的生命周期。

2、NodeManager(NM):部署在集群的每个节点上,NodeManager负责管理节点上的资源和执行具体的计算任务。它还负责向ResourceManager报告本节点的资源使用情况,以及处理来自ApplicationMaster的容器管理请求。

3、ApplicationMaster(AM):每个提交到Yarn上的应用程序都会生成一个ApplicationMaster实例,该实例负责协调应用程序所需的资源,并与ResourceManager协商获取适当的容器来运行应用程序的各个部分。


4、Yarn的工作流程
提交作业:用户通过客户端向ResourceManager提交应用程序,包括应用程序的配置和资源需求。ResourceManager接收到请求后,初始化一个ApplicationMaster以管理该应用程序。
资源分配:ApplicationMaster根据应用程序的需求向ResourceManager申请资源(容器)。ResourceManager根据集群的资源状况和调度策略,分配容器给ApplicationMaster。
执行任务:一旦容器被分配,ApplicationMaster与NodeManager通信,要求它在相应的容器中启动应用程序的具体任务。NodeManager负责监控容器的执行并报告状态给ApplicationMaster。
监控和调整:ApplicationMaster负责监控所有已启动容器的状态,并在必要时向ResourceManager请求额外资源或释放资源。一旦应用程序完成,ApplicationMaster向ResourceManager注销并关闭自身。


5、Yarn的调度器类型
FIFO Scheduler:按照作业提交的顺序进行调度,简单且易于实施,但不适合负载较重的集群环境。
Capacity Scheduler:允许多队列管理,每个队列有一定数量的资源容量,支持资源共享和队列优先级设置,适合多用户的环境。
Fair Scheduler:尝试公平地分配资源给所有运行的应用程序,确保每个应用都能获得等量的资源份额,适合于需要同时处理多个小作业的场景。
Yarn的功能特点
高可扩展性:Yarn的设计支持成千上万的节点和应用程序,使其成为大规模数据处理的理想选择。
灵活性:Yarn不仅支持MapReduce,还能处理多种计算框架,如Spark和Storm,为用户提供灵活的编程模型选择。
资源隔离:Yarn通过容器有效地隔离了不同应用程序,确保应用程序之间不会相互影响,增强了系统的稳定性和安全性。


综上所述,可以看到Yarn为Hadoop生态系统带来了显著的改进,特别是在资源管理方面。Yarn的引入不仅解决了原有MapReduce模型的局限性,还极大地提高了集群的资源利用率和系统的可扩展性。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值