Hadoop HDFS 3.3.4 讲解~

✨博客主页: https://blog.csdn.net/m0_63815035?type=blog

💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识
📢博客专栏: https://blog.csdn.net/m0_63815035/category_11954877.html
📢欢迎点赞 👍 收藏 ⭐留言 📝
📢本文为学习笔记资料,如有侵权,请联系我删除,疏漏之处还请指正🙉
📢大厦之成,非一木之材也;大海之阔,非一流之归也✨


前言

Hadoop是一个开源的分布式计算框架,主要用于处理和存储大规模数据集。它的设计初衷是解决海量数据的存储和计算问题,具有高容错性、高扩展性和低成本等特点。下面详细讲解Hadoop的核心知识点:

分而治之

所谓"分而治之",就是把一个复杂的算法问题按一定的"分解"方法分为等价的规模较小的若干部分,然后逐个分别找出各部分的解,再把各部分的解组成整个问题的解。这种朴素的思想来源于人们生活与工作的实践经验,如下图。


以下图做讲解:

1. Hadoop的核心组件

  • HDFS(Hadoop Distributed File System):分布式文件系统,用于存储海量数据

    • 采用主从架构(NameNode和DataNode)
    • 将文件分割成固定大小的块(默认128MB)进行存储
    • 每个块会在多个DataNode上备份(默认3份),保证数据可靠性
    • NameNode管理文件系统的元数据,DataNode负责实际数据存储
  • MapReduce:分布式计算框架,用于处理大规模数据

    • 基于"分而治之"思想,将计算任务分为Map和Reduce两个阶段
    • Map阶段:将输入数据分割成多个片段,并行处理
    • Reduce阶段:汇总Map阶段的结果,得到最终输出
    • 自动处理任务分发、容错、数据本地化等问题
  • YARN(Yet Another Resource Negotiator):资源管理和任务调度框架

    • 负责集群资源(CPU、内存等)的管理和分配
    • 主从架构:ResourceManager(主节点)和NodeManager(从节点)
    • 支持多种计算框架(MapReduce、Spark等)共享集群资源

2. Hadoop的架构特点

  • 主从架构:大部分组件采用主从架构设计,便于集中管理和分布式执行
  • 高容错性:通过数据备份和节点故障自动转移实现
  • 高扩展性:可以通过增加节点轻松扩展集群规模
  • 数据本地化:计算任务尽可能在数据所在节点执行,减少网络传输
  • 开源免费:基于Apache协议开源,降低企业使用成本

3. HDFS的工作原理

  • 读写流程

    • 写文件:客户端将文件分块,与NameNode交互获取存储位置,然后直接向DataNode写入数据
    • 读文件:客户端从NameNode获取文件块的存储位置,然后直接从DataNode读取数据
  • NameNode与DataNode的协作

    • NameNode维护文件系统的目录结构、文件与块的映射关系
    • DataNode定期向NameNode发送心跳信息和块报告
    • 当DataNode故障时,NameNode会安排其他节点复制数据块
  • 安全模式:HDFS启动时的一种特殊状态,此时只允许读操作,不允许写操作,用于检查数据块的完整性

4. MapReduce的工作原理

  • 执行流程

    1. InputFormat:将输入数据分割成InputSplit
    2. Map阶段:对每个InputSplit执行map函数,产生中间键值对
    3. Shuffle阶段:对map输出进行排序、分组等处理
    4. Reduce阶段:对shuffle后的结果执行reduce函数,产生最终输出
    5. OutputFormat:将reduce输出写入到指定位置
  • Shuffle机制:MapReduce的核心,负责在Map和Reduce之间传输和处理数据,包括分区、排序、合并等操作

5. YARN的工作原理

  • 核心组件

    • ResourceManager:全局资源管理器,负责资源分配和调度
    • NodeManager:每个节点上的资源管理器,负责本节点的资源管理
    • ApplicationMaster:每个应用程序的管理者,负责与ResourceManager协商资源并管理任务执行
    • Container:资源分配的基本单位,包含CPU、内存等资源
  • 作业提交与执行流程

    1. 客户端提交应用程序到ResourceManager
    2. ResourceManager分配第一个Container启动ApplicationMaster
    3. ApplicationMaster向ResourceManager申请资源
    4. ApplicationMaster在分配的Container上启动任务
    5. 任务执行并向ApplicationMaster汇报进度
    6. 所有任务完成后,ApplicationMaster向ResourceManager注销并关闭

6. Hadoop的生态系统

Hadoop生态系统包含多个相关项目,共同构成了大数据处理的完整解决方案:

  • Hive:数据仓库工具,提供类SQL查询语言(HQL)
  • Pig:数据流处理工具,提供类SQL的脚本语言(Pig Latin)
  • HBase:分布式NoSQL数据库,适合存储非结构化和半结构化数据
  • ZooKeeper:分布式协调服务,用于管理集群配置、命名服务等
  • Flume:日志收集工具,用于高效收集、聚合和传输大量日志数据
  • Sqoop:数据传输工具,用于在Hadoop与关系型数据库之间传输数据
  • Spark:快速通用的计算引擎,可替代MapReduce进行数据处理

7. Hadoop的应用场景

  • 日志分析:处理海量日志数据,提取有价值信息
  • 数据仓库:构建大规模数据仓库,支持数据分析和决策
  • 搜索引擎:存储和处理网页数据,支持全文检索
  • 机器学习:处理大规模训练数据,训练机器学习模型
  • 科学计算:处理科学研究中的海量数据
csharp 复制代码
今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文
相关推荐
珠海西格电力37 分钟前
云边端协同架构:零碳园区管理系统的技术底座
大数据·运维·人工智能·算法·架构·能源
cc5725026531 小时前
大数据专业是不是热门专业
大数据
汇策研习社1 小时前
StdDev标准差指标深度解析:量化市场波动的核心工具
大数据·经验分享·金融·区块链·fastbull
大大大大晴天2 小时前
Hudi技术内幕: Concurrency Control原理与实践
大数据
阿里云大数据AI技术3 小时前
DataWorks Data Agent 实战课堂(一):解锁你的7×24h全能“数据搭子”DataWorks AI助理!
大数据·人工智能·agent
SelectDB3 小时前
美团数十 PB 规模 Apache Doris 实践:从统一 OLAP 到 AI-Native 数据基座
大数据·数据库·性能优化
派叔3 小时前
老字号数字化转型的困境与路径:一个系统架构视角下的观察
大数据·人工智能·系统架构·产品运营·流量运营
朴马丁3 小时前
从制造到智造:国产PLM如何赋能化工新材料企业研发创新
大数据·人工智能·制造·流程行业plm·化工新材料行业
行业研究员4 小时前
当数据生产者变成 Agent,数据库底座如何重构?
大数据·数据库·重构
人工智能培训4 小时前
破解数据发展瓶颈 激活数字经济新动能
大数据·数据库·人工智能·深度学习·神经网络·机器学习·生成对抗网络