首先需要澄清一个常见误区:Hadoop 本身并不是一个数据库,而是一个分布式存储与计算框架。我们通常所说的“Hadoop数据库”往往指的是 HBase(构建在 Hadoop 之上的分布式数据库),或者泛指 Hadoop 生态系统中支持分布式计算的能力。
下面从 Hadoop 生态如何支持分布式计算 的角度,系统说明其原理和机制。
Hadoop 主要由两部分构成:
HDFS(Hadoop Distributed File System)
MapReduce / YARN
现代 Hadoop 生态中,YARN 是资源调度核心,MapReduce 只是其中一种计算模型。
特点:
示例:
文件 data.txt(1GB)
→ 被切分为 8 个 Block
→ 分别存储在不同 DataNode 上
MapReduce 是一种 分而治之 的计算模型:
Map 阶段
Reduce 阶段
Input → Split → Map → Shuffle → Reduce → Output
特点:
YARN 负责:
核心组件:
| 组件 | 作用 |
|---|---|
| ResourceManager | 全局资源管理 |
| NodeManager | 单节点资源代理 |
| ApplicationMaster | 单个作业的管理 |
如果你指的是 “Hadoop 数据库”,通常指 HBase。
示例:
HBase Table
→ 每个 Region 分布在不同节点
→ MapReduce 并行读取 Region
→ 分布式计算
| 对比项 | Hadoop / HBase | 传统关系型数据库 |
|---|---|---|
| 数据规模 | PB 级 | GB ~ TB |
| 扩展方式 | 横向扩展 | 纵向扩展 |
| 计算模型 | 分布式并行 | 单机或有限并行 |
| 延迟 | 高吞吐、高延迟 | 低延迟 |
| 数据模型 | 半结构化 / 非结构化 | 强结构化 |
除了 MapReduce,Hadoop 生态现在更多使用:
Hadoop 通过 HDFS 实现分布式存储,通过 YARN 和 MapReduce/Spark 等框架实现分布式计算;HBase 作为 Hadoop 生态中的分布式数据库,提供高并发的数据访问能力,与计算框架协同完成大规模数据处理。
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。