Hadoop2.0 新特性
定义:Yet Another Resource Negotiator,基于 MapReduce 的资源协调框架。核心组件:ResourceManager、NodeManager、ApplicationMaster、Container。优势:支持多版本 MapReduce、计算框架升级便捷。定义:基于 Zookeeper 实现的高可用集群模式,包含 HDFS HA 和 Yarn HA。核心目标:解决
·
一、Hadoop2.0 的改进
1. Hadoop1.0 存在的问题
- HDFS:NameNode 单点故障、内存受限影响扩展性。
- MapReduce:JobTracker 单点故障、访问压力大、不支持多计算框架。
2. 改进方案
- 解决 HDFS 问题:
-
- HA 模式:主备 NameNode,故障自动切换。
- Federation(联邦):多个 NameNode 分管目录,共享 DataNode 存储。
- 引入 Yarn:分离资源管理与作业调度,支持多计算框架。
二、Yarn 资源管理框架
1. 简介
- 定义:Yet Another Resource Negotiator,基于 MapReduce 的资源协调框架。
- 核心组件:ResourceManager、NodeManager、ApplicationMaster、Container。
- 优势:支持多版本 MapReduce、计算框架升级便捷。
2. 架构
- 主从结构:ResourceManager(Master)、NodeManager(Slave)。
- 组件功能:
-
- ResourceManager:接收作业请求、管理节点资源、启动监控 ApplicationMaster。
- NodeManager:管理节点资源、启动 Container、上报资源使用情况。
- ApplicationMaster:管理单个作业、申请资源、启动任务、监控进度。
- Container:资源抽象,包含任务运行所需资源、命令、环境。
3. 工作流程
- 客户端提交程序到 ResourceManager。
- ResourceManager 分配 Container 并启动 ApplicationMaster。
- ApplicationMaster 注册到 ResourceManager,申请资源。
- ApplicationMaster 获取资源后,通知 NodeManager 启动任务。
- NodeManager 设置运行环境,启动任务。
- 任务向 ApplicationMaster 汇报状态,失败时重启。
- 作业完成后,ApplicationMaster 注销关闭。
4. 优势
- 计算速度更快:异步模型重写 MapReduce 核心逻辑。
- 支持多种框架:Spark、Storm、Tez 等可移植到 Yarn。
- 框架升级容易:计算框架封装为客户端程序库,升级便捷。
三、Hadoop 的 HA 模式
1. 简介
- 定义:基于 Zookeeper 实现的高可用集群模式,包含 HDFS HA 和 Yarn HA。
- 核心目标:解决单点故障问题,保证集群持续服务。
2. HDFS 的 HA 模式
(1)架构
- 两个 NameNode:Active(活跃)和 Standby(备用),Active 处理客户端操作,Standby 同步数据。
- 关键组件:
-
- JournalNode:同步 Active 与 Standby 的 edits 日志,至少 3 个节点。
- DFSZKFailoverController(ZKFC):监控 NameNode 状态,触发故障转移。
(2)搭建步骤
- 关闭 Hadoop 和 Zookeeper 集群。
- 修改 core-site.xml(配置集群 ID、ZK 连接)。
- 修改 hdfs-site.xml(配置 NameNode 标识、JournalNode 地址、故障转移参数)。
- 分发配置文件,配置免密登录。
- 启动 ZK 集群→格式化 ZK→启动 JournalNode→初始化共享日志→启动 HDFS。
(3)故障转移验证
- 查看 NameNode 状态:hdfs haadmin -getServiceState nn1/nn2。
- 模拟故障:kill Active NameNode 进程,验证 Standby 自动切换为 Active。
3. Yarn 的 HA 模式
(1)架构
- 多个 ResourceManager:Active 和 Standby,Active 管理资源,Standby 备用。
- 故障转移:支持手动切换和自动切换(基于 Zookeeper)。
(2)搭建步骤
- 修改 yarn-site.xml(配置 RM 标识、ZK 连接、自动故障转移)。
- 分发配置文件,新建 rm_hosts 文件(列出 RM 节点)。
- 修改 start-yarn.sh 和 stop-yarn.sh 脚本。
- 启动 ZK 集群→启动 Yarn 集群。
(3)故障转移验证
- 查看 RM 状态:yarn rmadmin -getServiceState rm1/rm2。
- 模拟故障:kill Active RM 进程,验证 Standby 自动切换为 Active。
4. 启动和关闭流程
- 启动:启动 ZK 集群→启动 Hadoop 集群(start-dfs.sh + start-yarn.sh)。
- 关闭:关闭 Hadoop 集群(stop-dfs.sh + stop-yarn.sh)→关闭 ZK 集群。
更多推荐


所有评论(0)