• Home
  • 归档
文章检索 作品与友邻 关于我
暴君乔博客
Home 归档

Hadoop架构原理知识

发布于: 2021-08-11
更新于: 2023-07-09
文章目录
  1. Hadoop
    1. 技术体系

Hadoop

Apache Hadoop 是一款支援數據密集型分布式應用程式並以 Apache 2.0 許可協定發布的開源軟體框架。它支援在商用硬體構建的大型叢集上運行的應用程式。Hadoop 是根據 Google 公司發表的 MapReduce 和 Google 檔案系統的論文自行實作而成。

技术体系

  • HDFS 分布式文件系统
  • YARN 分布式资源调度系统
  • MapReduce 分布式计算系统

HDFS

Hadoop Distributed File System

由集群机器组成,每个机器部署一个 DataNode 进程,管理部分数据,如果有机器部署了 NameNode,可以理解为负责 HDFS 集群的进程

  • 节点
    • NameNode 管理者负责命名空间,CRUD 文件及目录,也负责对具体 DataNode 的映射,不负责存储用户数据
    • DataNode 文件存储者
    • Client 分布式文件系统的应用程序
  • MapReduce

    负责将任务拆分为多个子任务进行
    - JobTracker 总经理进程-分配任务
    - TaskTracker 任务监控进程

HDFS架构图1

NameNode原理

NameNode架构图1

NameNode首先有namespace,管理整个元数据信息,像文件目录树,权限设置,副本数Etc.

关于上述文件目录,平常是基于内存保存的,断电保存是如何实现的呢?

通过周期Flush到持久化设备FsImage文件上,每次重启时会从持久化设备中读取FsImage用于构建Namespace。

而在上面构建的过程中,为了避免频繁的IO读写,通过edits.log日志的形式进行实现,需要恢复时,以磁盘文件为基准,再回放edits.log文件就可以快速恢复,避免了频繁的读写

但是随着时间的增长,edits.log也会变得极其臃肿庞大,如何避免这个问题?
就要引入fsimage/JournalNodes集群/Standby NameNode来把edits.log缩减

大文件的存放涉及到文件的切分,引入了BlockManager进行管理

首先将大文件进行切分为多个Block,每个block 128MB,切分后存放到不同的机器上的DataNode,此外为了保证高可用,Block还默认有2个备份,存放在不同的机器上,这样子恢复时,可以从其他机子进行恢复文件

Hadoop架构原理图2

Hadoop架构原理知识
/archives/13c90d26/
作者
tyrantqiao
发布于
2021-08-11
更新于
2023-07-09
许可协议
CC BY-NC-SA 4.0
赏

蟹蟹大佬的打赏,大家一起进步

支付宝
微信
  • 架构
  • Hadoop

扫一扫,分享到微信

微信分享二维码
TIDB 从学习到看论文头疼
动态规划从套路开始
© 2026 tyrantqiao 本站总访问量次 本站访客数人次 载入天数...载入时分秒...
  • 文章检索
  • 作品与友邻
  • 关于我

展开标签

  • 随笔
  • 旅行
  • Java
  • 面经
  • 源码
  • 计算机网络
  • 技术
  • 架构
  • Hadoop
  • IDEA
  • maven
  • JDK
  • Linux
  • MySQL
  • 性能
  • 数据库
  • Redis
  • MQ
  • Spring
  • SquirrelFin
  • 记账
  • Android
  • 个人财务
  • unity
  • TIDB
  • chatgpt
  • 前端
  • Vue
  • Git
  • Hexo
  • shadowsocks
  • 问题排查
  • 业务
  • JVM
  • 算法
  • nginx
  • ssh
  • Python
  • 爬虫
  • test
  • vim
  • 影视剧
  • 中间件
  • 事务
  • 表达
  • 运动
  • mybatis
  • AI
  • 产品
  • 家装
  • 土巴兔
  • 域名
  • github
  • 软件
  • 个人项目
  • Leaves
  • Chrome
  • 浏览器插件
  • 开源
  • Balance Voice
  • 穿搭
  • 幽默
  • 画画
  • 缓存
  • 摄影
  • c
  • 课程设计
  • 调酒
  • 设计模式
  • 数学

Collection

作品与友邻

我做的小工具、朋友的站点和一些长期值得回访的灵感来源。

  • 土 土巴兔 AI 导购交互演示 可点击体验用户导购、平台运营、装修公司、材料商及 AI 话术知识库的多端增长流程。 /demos/tubatu-ai-guide/
  • L Leaves 行程记录 我做的行程记录页面小工具,用来沉淀旅行路线、日程安排和途中的灵感。 https://leaves.tyrantqiao.com/
  • 本 本网站主题yilia设计者的主页 http://litten.me/
tyrantqiao的头像

tyrantqiao

github rss qq mail facebook linkedin

About

关于我

代码、海浪和持续折腾,都是生活的一部分。

<div class="aboutme-card"> <p class="aboutme-eyebrow">tyrantqiao</p> <h3>Java 全栈开发</h3> <p>常年和 Java、后端服务、前端工程、数据与部署打交道,喜欢把复杂问题拆开、写清楚,也把踩坑过程整理成文章留给后来的人。</p> <div class="aboutme-tags"> <span>Java</span> <span>Full Stack</span> <span>Backend</span> <span>Frontend</span> <span>Extreme Sports</span> </div> <p>工作之外偏爱冲浪等极限运动,享受在浪上找平衡,也享受在代码里找边界。</p> <div class="aboutme-contact"> <a href="mailto:[email protected]">Gmail</a> <a href="mailto:[email protected]">QQ Mail</a> </div> </div>