Hadoop 概述
Hadoop 是什么
- Hadoop 是一个由 Apache 基金会开发的开源分布式计算框架,旨在处理和分析海量数据。它提供了对大数据进行存储、处理和分析的基础架构,并且可以在低成本的硬件集群上运行。
- 通常情况下 Hadoop 是指一个更广泛的概念——Hadoop 生态圈。
Hadoop 主要发展历程
- 2005年:诞生和初期阶段
- 2006年:成为 Apache 项目
- 2008年:Hadoop 0.18 发布
- 2009年:Hadoop 生态系统的扩展
- 2011年:Hadoop 1.0 发布
- 2012年:YARN 引入
- 2014年:Hadoop 2.0 GA 发布
- 2017年:Hadoop 3.0 发布
Hadoop 优势
- 分布式存储: Hadoop 分布式文件系统(HDFS)允许数据分散存储在集群的多个节点上,提供了高容错性和可用性。通过在多个节点上复制数据块,HDFS 可以容忍节点故障,确保数据的安全性和可靠性。
- 可扩展性: Hadoop 是一个高度可扩展的系统,可以轻松地扩展到数千台服务器,以处理更大规模的数据。这种可扩展性使得 Hadoop 能够适应不断增长的数据量和工作负载。
- 开源和免费: Hadoop 是一个开源项目,任何人都可以免费获取、使用和修改它。这降低了大数据处理的成本,促使许多组织和企业采用 Hadoop 作为他们的大数据解决方案。
- 容错性: Hadoop 通过在多个节点上存储数据的多个副本来提高容错性。当某个节点出现故障时,系统可以从其他节点获取数据,确保作业的顺利执行。
- 灵活性: Hadoop 生态系统包含许多工具和组件,使其非常灵活,能够应对不同类型的工作负载。从批处理作业到实时查询,再到流处理,Hadoop 都提供了各种工具和框架来满足不同的需求。
- 适用于多样化的数据: Hadoop 可以处理结构化和非结构化数据,包括文本、图像、音频等多种类型的数据。这使得它成为一个通用的大数据处理框架,适用于各种应用场景。
- 生态系统丰富: Hadoop 生态系统不断发展,包括了许多与大数据相关的工具和框架,如 Hive、HBase、Pig、Spark 等。这些工具扩展了 Hadoop 的功能,使其能够更全面地满足不同的业务需求。
- 并行处理: Hadoop 采用 MapReduce 编程模型,可以在大规模的数据集上进行并行处理。这种并行性使得任务可以在集群的多个节点上同时执行,加速数据处理速度。
总体而言,Hadoop 的优势在于其能够有效地处理大规模数据、提供高度可扩展性和容错性,同时具备开源性和灵活性,适用于各种不同的应用场景。
Hadoop 组成
Hadoop 1.x、2.x、3.x 区别
- Hadoop 1.x
- Hadoop 2.x
- Hadoop 3.x
HDFS 概述
Hadoop Distributed File System (HDFS) 是 Hadoop 的核心组件之一,提供了一个高度容错性的分布式文件系统。
- NameNode(NN):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
- DataNode(DN):在本地文件系统存储文件块数据,以及块数据的校验和。
- Secondary NameNode(2NN):每隔一段时间对NameNode元数据备份。
YARN 概述
Yet Another Resource Negotiator (YARN) 是 Hadoop 2.x版本引入的资源管理和调度平台。它负责管理整个集群的计算资源(如CPU和内存)以及任务调度。YARN允许其他计算框架(例如 Spark 或 Flink)与 Hadoop 集成并在同一集群上运行。
- ResourceManager(RM):管理整个集群资源(内存、CPU等)
- NodeManager(NM):管理单个节点服务器资源
- ApplicationMaster(AM):管理单个任务运行
- Container:容器,相当一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等。
MapReduce 架构概述
MapReduce 是一种编程模型,用于编写分布式数据处理应用程序。它将复杂的计算任务分解为两个主要阶段:Map 阶段和 Reduce 阶段。
HDFS、YARN、MapReduce 三者关系
客户端 Client 提交任务到资源管理器(ResourceManager),资源管理器接收到任务之后去NodeManager 节点开启任务(ApplicationMaster), ApplicationMaster 向 ResourceManager 申请资源,若有资源 ApplicationMaster 负责开启任务即 MapTask。开始干活了即分析任务,每个 map 独立工作,各自负责检索各自对应的 DataNode,将结果记录到 HDFS,DataNode 负责存储,NameNode 负责记录,2nn 负责备份部分数据。
HDFS、YARN 和 MapReduce 共同协作,形成了 Hadoop 的基本架构,使其能够存储和处理大规模的数据。随着 Hadoop 生态系统的发展,其他计算框架(如Apache Spark、Apache Flink)也被引入,扩展了 Hadoop 的功能。
Hadoop 生态圈
Hadoop 是目前应用最为广泛的分布式大数据处理框架,其具备可靠、高效、可伸缩等特点。
Hadoop 的核心组件是 HDFS、MapReduce。随着处理任务不同,各种组件相继出现,丰富Hadoop 生态圈。
根据服务对象和层次分为:数据来源层、数据传输层、数据存储层、资源管理层、数据计算层、任务调度层、业务模型层。
经过时间的累积,Hadoop 已经从最开始的两三个组件,发展成一个拥有20多个部件的生态系统。在整个 Hadoop 架构中,计算框架起到承上启下的作用,一方面可以操作 HDFS 中的数据,另一方面可以被封装,提供 Hive、Pig 这样的上层组件的调用。
接下来对 Hadoop 生态圈中出现的相关组件做一个简要介绍。
原文地址:https://blog.csdn.net/qq_61828116/article/details/134745622
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_26790.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!