Transcript 单机处理能力受限
Geminifs 之 Hadoop NameNode Cluster 京东Hadoop 作者: 刘涛 邮箱: [email protected] 关于我们 邮箱:[email protected] 我们在hadoop上的一些工作 Geminifs 集群自动 Jobtracke 部署 r调度优化 JDHadoop 监控 预警 BUG解决, 代码优化 目录 CONTENTS 面临的问题 解决方案 实现的核心细节 未来计划 遇到的问题 内存瓶颈: *元数据增加 *内存增加 *单机内存受限 提高性能: * 单机处理能力受限 NameNode Cluster 已有方案 –-HDFS Federation 已有方案 -- MapR 我们的方案 - Geminifs 2.0 / k a ax ka kk Namespace a1 •虚拟节点 •每个虚拟节点代表原目录树空间 中以此节点为根的子树 •每个Namenode负责1个或多个 虚拟节点所对应的子树 z kz zx zn zz zxn … … Namenode BlockManager Storage BlockManager Namenode Datanode Datanode Datanode •Heartbeat •Block replicate check •Block management Datanode Geminifs 2.0 DN 安全 管理 权限 原NN 块管 全目 理 录树 安全 块管 权限 理 新NN 新BM 子目 DN 录树 管理 Geminifs 2.0 新增特性 • NN侧重目录树管理 • NN不停机横向扩展 • BM通用存储方案 • BM不停机横向扩展 • 用户无需配置扩展的节点 • 元数据与存储解耦 • NN,BM独立提高性能 • NN,BM HA 实现 目录树拆分 / z k a •将要拆分的子树目录结构在新的Namenode 的根目录下重建 •将原Namenode上拆分出去的目录节点标记 为虚拟节点 •将原Namenode上拆分出去的目录节点的所 有子节点删除 zx zn a1 ax ka kk kz zxn … … 如何访问 /k/kn/knk a a1 ax / NN1 / NN2 - k k z / NN3 / NN4 zx zxn zx zn ka kk kz … … 实现 主干树 / a z k •从根节点到任意虚拟节点的完整路径 •叶子节点是虚拟节点 •虚拟节点上记录此子树被加载的 Namenode地址 •各Namenode及访问的客户端都保存最新 的主干树 zx zn a1 ax ka kk kz zxn … / k z zx … 实现 目录树拆分 / z k a •将要拆分的子树目录结构在新的Namenode 的根目录下重建 •将原Namenode上拆分出去的目录节点标记 为虚拟节点 •将原Namenode上拆分出去的目录节点的所 有子节点删除 zx zn a1 ax ka kk kz zxn … / 主干树 k NN2 z NN3 zx NN4 / NN1 - a a1 ax k z … / NN2 k / NN3 / NN4 zx zxn ka kk zx zn kz … … 实现 如何访问 /k/kn/knk / NN1 / 主干树 - k NN2 z NN3 从主干树上 找最远虚拟 节点 a zx NN4 a1 ax k z zx znka kk 访问虚拟节 找到Kn 点记录的NN 地址 / NN2 k 访问NN3 kz / NN3 / NN4 zx zxn … … NN计算真实 路径为 路径 /kn/knk 实现 / a 如何实现权限验 证 z k zx zn a1 ax ka kk kz zxn … / k z … •从根节点到任意虚拟节点的完整路径 •叶子节点是虚拟节点 •虚拟节点上记录此子树被加载的 Namenode地址 •各Namenode及访问的客户端都保存最新 的主干树 •主干树的每个节点记录属主及Mode zx 路径在主干树部分从主干树上验证,路径中 主干树外剩余部分由NN自己保存的节点信 息验证 实现 主干树完善&优化 主干树缓存 引入版本验证 形成单独进程RDB (Router Database) 引入版本改变规则 功能独立化 实现 数据块管理功能独立 NN: - FileNode FileID (唯一) Namenode Cluster Block Manager Cluster BM: - HashMap - FileID [Blocks] DN: - Block 增加FileID属性 Datanode Cluster 实现 完善&优化 给NN一次性分配 BlockManager按 DN块按段汇报到 一段FileID范围 段进行管理调度 相同BM 整合到RDB进程 段到BM路由功能 High Availability Cluster Heartbeat Commands Cluster ZK RDB Metadata node Client Active Write edits Read edits Standby Share storage Local disk Local disk 下一步的工作 自动化 运维 元数据 存BM HA功能优化 谢 谢!