首页 > 其他分享 >Hadoop

Hadoop

时间:2024-09-12 22:23:14浏览次数:9  
标签:HDFS Hadoop MapReduce 任务 DataNode 数据

Apache Hadoop 是一个开源的分布式计算框架,主要用于处理海量数据集。它具有高度的可扩展性、容错性和高效的分布式存储与计算能力。Hadoop 核心由四个主要模块组成,分别是 HDFS(分布式文件系统)、MapReduce(分布式计算框架)、YARN(资源管理)和 Hadoop Common(公共工具和库)。

1. HDFS(Hadoop Distributed File System)

HDFS 是 Hadoop 生态系统的存储基础,用于将数据分布式地存储在集群的多个节点上。

核心概念
  • NameNode:负责管理 HDFS 的元数据,跟踪文件系统的目录结构、文件的分块和每个块所在的 DataNode。NameNode 本身不存储数据,它只保存文件系统的元数据和数据块的映射信息。
  • DataNode:存储实际的数据块,并定期向 NameNode 报告其状态。每个文件被拆分成多个数据块,这些数据块被分散存储在集群中的多个 DataNode 上。
  • 块大小和副本:HDFS 将文件分成固定大小的块(默认 128MB),并将每个块复制到多个 DataNode 中,以保证数据的可靠性和容错性(默认副本数为 3)。
容错机制
  • 数据复制:每个数据块会被复制到不同的 DataNode 上,通常副本数为 3。即使某个 DataNode 发生故障,NameNode 可以从其他 DataNode 上恢复数据。
  • 心跳机制:DataNode 定期向 NameNode 发送心跳信号,告知其正常工作状态。如果某个 DataNode 失去联系,NameNode 会将该节点上的数据块重新复制到其他节点。
读写流程
  • 读数据:客户端向 NameNode 请求文件的元数据(包括文件的块信息及其所在的 DataNode 列表),然后直接从相关的 DataNode 读取数据。
  • 写数据:客户端将数据写入多个 DataNode,数据首先写入临时副本,然后在集群中复制,以确保数据的高可用性。

2. MapReduce

MapReduce 是 Hadoop 的核心计算模型,用于处理大规模数据集的分布式计算。它将计算任务分为两个阶段:Map 阶段和 Reduce 阶段。

Map 阶段
  • Map 阶段主要负责对输入数据进行初步处理。每个输入数据(通常是键值对)会被分发到各个计算节点,计算节点会根据用户定义的 Map 函数对数据进行处理,并产生中间结果。
Shuffle 和 Sort
  • Shuffle 阶段是在 Map 和 Reduce 阶段之间的桥梁,负责将 Map 任务的输出(中间结果)按照键值分发到对应的 Reduce 任务中。
  • Sort:在 Shuffle 之后,所有的中间结果会根据键进行排序,然后传递给 Reduce 阶段。
Reduce 阶段
  • Reduce 阶段负责对 Map 阶段产生的中间结果进行汇总和聚合,最后输出最终的结果。Reduce 函数会接收来自不同 Map 任务的中间结果,并进行汇总计算。
容错性
  • 任务重试:如果某个任务(Map 或 Reduce)失败,YARN 会自动重新调度该任务到其他节点运行。
  • 数据本地化:MapReduce 优化了计算的本地性,即尽量在数据所在的节点上执行计算任务,以减少数据传输的时间成本。

3. YARN(Yet Another Resource Negotiator)

YARN 是 Hadoop 2.0 之后引入的资源管理框架,负责集群中计算资源的管理和任务调度。它将资源管理和任务调度分开,使 Hadoop 可以更好地支持多种应用。

核心组件
  • ResourceManager:负责全局的资源调度和管理。它会根据作业的需求,分配适当的资源给各个作业,并监控资源的使用情况。
  • NodeManager:负责管理每个节点上的资源(如内存、CPU)。NodeManager 负责启动、监控和回收各个容器(Container)。
  • ApplicationMaster:每个作业都会有一个独立的 ApplicationMaster,它负责协调作业的执行、请求资源以及监控任务的状态。ApplicationMaster 是 YARN 中作业的调度单元,它负责与 ResourceManager 和 NodeManager 进行交互。
工作机制
  • 当一个应用程序启动时,首先会向 ResourceManager 请求资源。
  • ResourceManager 分配资源后,ApplicationMaster 在 NodeManager 上启动相应的容器来执行任务。
  • ApplicationMaster 会监控任务的执行状态,并在任务失败时重新调度。

4. Hadoop Common

Hadoop Common 提供了 Hadoop 核心模块所需的基础库和实用工具,主要包括:

  • 文件系统接口:支持多种文件系统的接口(如本地文件系统、HDFS、S3 等)。
  • 序列化机制:支持自定义的序列化和反序列化机制,用于高效的数据传输。
  • RPC(远程过程调用):Hadoop 内部通信机制基于 RPC,用于各个组件之间的通信。
  • 集群配置:提供了各种集群管理和配置工具,帮助用户设置和监控 Hadoop 集群。

5. Hadoop 生态系统

除了核心的 HDFS、MapReduce 和 YARN,Hadoop 还有许多扩展组件,这些组件组成了丰富的 Hadoop 生态系统,用于处理不同类型的数据任务:

  • Hive:一个数据仓库工具,允许用户使用类似 SQL 的查询语言(HiveQL)来分析存储在 HDFS 上的数据。Hive 会将查询语句转换为 MapReduce 作业。
  • HBase:基于 HDFS 构建的分布式 NoSQL 数据库,支持快速随机读写大规模数据集。
  • Pig:一个数据流处理框架,使用 Pig Latin 语言来描述数据处理的逻辑。Pig 允许用户以更简洁的方式编写复杂的 MapReduce 任务。
  • Sqoop:用于在 Hadoop 和关系型数据库(如 MySQL、Oracle)之间高效传输数据的工具。
  • Oozie:一个用于协调和管理 Hadoop 作业的工作流调度器。
  • ZooKeeper:分布式协调服务,Hadoop 生态系统中的多个组件都依赖它来实现分布式锁、配置管理、任务协调等功能。
  • Flume:用于从分布式数据源收集、聚合和移动大量数据的工具,通常用于收集日志数据。

6. Hadoop 的容错性与扩展性

容错性
  • Hadoop 的容错机制体现在多个方面:HDFS 的数据块复制机制确保数据不会因为节点故障而丢失,MapReduce 中任务失败后可以重试,YARN 负责动态分配资源和监控任务状态以确保任务的顺利完成。
扩展性
  • Hadoop 设计为高度可扩展的系统。无论是 HDFS 还是 MapReduce,都能随着集群节点的增加而扩展,处理越来越大的数据集。HDFS 通过增加 DataNode 来增加存储容量,而 MapReduce 通过增加计算节点来提升并行计算能力。

7. Hadoop 的优缺点

优点
  • 海量数据处理能力:Hadoop 可以高效地处理数 PB 级别的海量数据,适用于大规模数据分析。
  • 高扩展性:通过增加节点即可扩展集群的存储和计算能力。
  • 容错性:Hadoop 的数据复制机制和任务重试机制保证了数据和计算的高可靠性。
  • 成本低:Hadoop 使用廉价的硬件就可以构建大规模的分布式系统,降低了存储和计算成本。
缺点
  • 高延迟:MapReduce 模型适合批处理任务,对于低延迟实时任务支持不够好。
  • 复杂性:开发基于 MapReduce 的作业相对复杂,需要理解分布式计算模型。
  • 集群维护成本高:尽管 Hadoop 本身可以运行在廉价硬件上,但随着集群规模的增长,集群的管理和维护成本会显著增加。

总结

Hadoop 是处理大规模数据的强大工具,它通过 HDFS 提供分布式存储,通过 MapReduce 实现分布式计算,通过 YARN 管理资源,构成了一个高度可扩展的分布式系统

。尽管 Hadoop 由于其批处理特点不适用于所有场景,但它在大数据领域依然具有不可替代的重要地位,尤其是在数据湖和批处理任务中。

标签:HDFS,Hadoop,MapReduce,任务,DataNode,数据
From: https://blog.csdn.net/Casual_Lei/article/details/142151761

相关文章

  • Hadoop Pig
    Pig是ApacheHadoop生态系统中的一个高层次平台,主要用于处理大型数据集。它的核心组件是PigLatin,这是一种数据流语言,可以简化大规模并行处理的编程任务。Pig通过将复杂的数据操作转换为MapReduce任务,简化了编写Hadoop应用程序的难度。Pig的核心组成部分PigLat......
  • Hadoop生态圈拓展内容(二)
    7.Hadoop的Block大小及原因Hadoop的块默认大小是128MB。在Hadoop1.x和2.x版本中默认为64MB。原因如下:文件块越大,寻址时间越短,但磁盘的传输时间越长。文件块越小,寻址时间越长,但磁盘传输时间越短。块大小的设置需要在寻址时间和传输时间之间找到平衡。8.Hadoop中Block划分......
  • Hadoop(五)生产集群搭建(二)
    完全分布式运行模式一、SSH无密登录配置1、基本语法ssh另一台电脑的IP地址[user@hadoop102~]$sshhadoop103退回hadoop102[user@hadoop103~]$exit2、配置(1)生成公钥和私钥[[email protected]]$pwd/home/atguigu/.ssh[[email protected]]$ssh-keygen-tr......
  • hadoop之MapReduce
    MapReduce的概念Hadoop的三大组件:HDFS、Yarn、MapReduce。HDFS:解决的是分布式存储的问题。MapReduce:解决的是计算问题。Yarn:计算的时候,使用的资源如何协调(Windows操作系统)mapReduce的优缺点:优点1、易于编程   代码写起来有固定的格式,编写难度非常的小,号称是......
  • 快速部署Hadoop
    我会提供3台配置好的你们直接导入就行,但是有以下几个设置要改。不想看的话直接拉到底。1.虚拟网卡设置点击进去点击后看是不是88网段,不是了改一下2修改本地虚拟网卡找到这个页面修改IPV4,改为3.导入虚拟机解压完是先导入node1,找到node1.vmx一会导入其他两个也是vm......
  • Hadoop(三)环境准备
    环境准备模板虚拟机准备1、安装模板虚拟机IP地址192.168.10.100、主机名称hadoop100、内存4G、硬盘50G下载安装VWareWorkstationPro16,因为Win11与VMWare15不兼容,在15中打开虚拟机会蓝屏Linux系统全部以CentOS-7.5-x86-1804为例2、hadoop100虚拟机配置测试虚拟机联网......
  • 基于Hadoop的广州招聘可视化分析系统 基于SpringBoot的广州招聘可视化分析系统 大数据
    ......
  • hadoop中国电动汽车市场分析与可视化-计算机毕业设计源码40244
    目 录摘要1绪论1.1选题背景与意义1.2研究现状1.3研究内容1.4论文结构与章节安排2 中国电动汽车市场分析与可视化系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3操作可行性分析2.2系统功能分析2.2.1功能性分析......
  • Hadoop之HDFS读写流程
    HDFS读写流程1.写入的流程1.Client客户端发送上传请求,通过RPC与NameNode建立通信,NameNode检查该用户是否有上传权限,以及上传的文件是否在HDFS对应的目录下重名,如果这两者有任意一个不满足,则直接报错,如果两者都满足,则返回给客户端一个可以上传的信息;2.Client根据文件的大......
  • 分享一个基于python的电子书数据采集与可视化分析 hadoop电子书数据分析与推荐系统 sp
    ......