一、Hadoop 三种部署模式对比表
对比维度 | 单机模式(Standalone Mode) | 伪分布式模式(Pseudo-Distributed Mode) | 完全分布式模式(Fully-Distributed Mode) |
---|---|---|---|
硬件依赖 | 仅需1台普通机器,对硬件配置要求低(普通个人电脑即可) | 仅需1台机器,但需一定硬件资源(内存、磁盘需满足多进程运行) | 需多台机器组成集群(至少3台,主从节点分离,生产环境需更高配置) |
组件运行形式 | 所有Hadoop组件(NameNode、DataNode、ResourceManager等)都运行在单个Java进程中 | 所有组件以独立进程运行(如NameNode、DataNode各占一个进程),但所有进程都在同一台机器上 | 不同组件部署在不同机器:主节点(NameNode、ResourceManager)单独部署,从节点(DataNode、NodeManager)分散在多台机器 |
网络通信 | 组件间无网络通信,仅在进程内部交互 | 组件间通过本地网络协议通信(模拟分布式网络交互) | 组件间通过集群网络通信(主从节点跨机器交互) |
数据存储逻辑 | 不启用HDFS分布式存储,数据直接存在本地文件系统,无分块/副本机制 | 启用HDFS,数据按分布式规则分块存储,支持副本配置(通常设为1,避免单机器资源浪费) | 启用HDFS,数据分块存储在多个DataNode,副本数可配置(生产环境通常设为3,保证数据可靠性) |
核心用途 | 1. 代码调试(验证Hadoop API语法、逻辑正确性) 2. 新手快速熟悉Hadoop基本命令 | 1. 学习分布式原理(模拟真实分布式组件交互流程) 2. 开发测试(验证程序在分布式环境下的功能) 3. 小规模数据演示 | 1. 生产环境大规模数据处理(PB级数据存储与计算) 2. 高并发任务运行(多节点协同提升效率) |
搭建复杂度 | 极低:无需修改复杂配置,安装后即可使用 | 中等:需配置环境变量、组件通信参数、格式化HDFS等步骤 | 较高:需配置集群网络、节点间免密登录、主从节点同步、资源分配策略等 |
性能与扩展性 | 无分布式性能优势,仅支持小规模数据(MB级) | 性能受单机器硬件限制,支持小规模数据(GB级),无扩展性 | 性能随节点数量提升,支持海量数据(PB级),可通过增加节点扩展存储与计算能力 |
二、组件介绍
组件名称 | 核心功能 | 关键作用 |
---|---|---|
HDFS | 分布式文件系统,将大文件分块存储在多台服务器上 | 为 Hadoop 生态提供高可靠、高吞吐量的分布式数据存储能力,支持海量数据的存储与访问 |
YARN | 资源管理系统,负责集群资源的分配与调度 | 统一管理集群的计算资源(如 CPU、内存等),为各类应用程序(包括 MapReduce 等)分配资源并进行任务调度,提高集群资源利用率 |
MapReduce | 分布式计算框架,采用"分而治之"思想处理大规模数据 | 把复杂的大数据计算任务拆分为多个简单的子任务(Map 阶段和 Reduce 阶段),分布到集群各节点并行执行,最后汇总结果,实现高效的分布式计算 |