210 likes | 364 Views
Geminifs 之. Hadoop NameNode Cluster. 京东 Hadoop. 作者 : 刘涛. 邮箱 : cdliutao@jd.com. 关于我们. 邮箱 : cdrd -uhp@jd.com. 我们在 hadoop 上的一些工作. 解决方案. 实现的核心细节. 未来计划. 目 录 CONTENTS. 面临的问题. 遇到的问题. 提高性能 :. 内存瓶颈 :. *元数据增加 *内存增加 *单机内存受限. * 单机处理能力受限. NameNode Cluster.
E N D
Geminifs 之 HadoopNameNode Cluster 京东Hadoop 作者: 刘涛 邮箱: cdliutao@jd.com
关于我们 邮箱:cdrd-uhp@jd.com
解决方案 实现的核心细节 未来计划 目 录 CONTENTS 面临的问题
遇到的问题 提高性能: 内存瓶颈: *元数据增加 *内存增加 *单机内存受限 * 单机处理能力受限 NameNode Cluster
我们的方案 -Geminifs 2.0 • 虚拟节点 • 每个虚拟节点代表原目录树空间中以此节点为根的子树 • 每个Namenode负责1个或多个虚拟节点所对应的子树 / k a z zx Namespace zxn a1 ax ka kk kz zn zz … … kn Namenode Namenode • Heartbeat • Block replicate check • Block management BlockManager BlockManager Storage knk knn knz Datanode Datanode Datanode Datanode
Geminifs 2.0 • 新增特性 • NN侧重目录树管理 • NN不停机横向扩展 • BM通用存储方案 • BM不停机横向扩展 • 用户无需配置扩展的节点 • 元数据与存储解耦 • NN,BM独立提高性能 • NN,BM HA
实现 目录树拆分 / / • 将要拆分的子树目录结构在新的Namenode的根目录下重建 • 将原Namenode上拆分出去的目录节点标记为虚拟节点 • 将原Namenode上拆分出去的目录节点的所有子节点删除 z - k a z k a zx zn ka kk kz kn a1 ax a1 ax zx zn zxn knk knn knz … … / 如何访问/k/kn/knk / zx / kn k zxn NN1 NN2 NN3 NN4 knk knn knz … … ka kk kz kn
实现 主干树 / • 从根节点到任意虚拟节点的完整路径 • 叶子节点是虚拟节点 • 虚拟节点上记录此子树被加载的Namenode地址 • 各Namenode及访问的客户端都保存最新的主干树 z k a zx zn ka kk kz kn a1 ax zxn knk knn knz … … / z k kn zx
实现 目录树拆分 / / • 将要拆分的子树目录结构在新的Namenode的根目录下重建 • 将原Namenode上拆分出去的目录节点标记为虚拟节点 • 将原Namenode上拆分出去的目录节点的所有子节点删除 z - k a z k a zx zn ka kk kz kn a1 ax a1 ax zx zn zxn knk knn knz … … / / zx / / kn k z zxn k 主干树 NN1 NN2 NN3 NN4 knk knn knz … … kn zx ka kk kz kn NN2 NN3 NN4
实现 如何访问/k/kn/knk / - NN1 NN2 NN3 NN4 z k a a1 ax zx zn / / zx / / kn k z zxn k 主干树 knk knn knz … … kn zx ka kk kz kn NN2 NN3 NN4
实现 如何实现权限验证 / z k a zx zn ka kk kz kn a1 ax zxn knk knn knz … … • 从根节点到任意虚拟节点的完整路径 • 叶子节点是虚拟节点 • 虚拟节点上记录此子树被加载的Namenode地址 • 各Namenode及访问的客户端都保存最新的主干树 • 主干树的每个节点记录属主及Mode / z k kn zx 路径在主干树部分从主干树上验证,路径中主干树外剩余部分由NN自己保存的节点信息验证
实现 主干树完善&优化
实现 数据块管理功能独立 NN: - FileNode FileID (唯一) Namenode Cluster Block Manager Cluster BM: - HashMap - FileID[Blocks] DN: - Block 增加FileID属性 Datanode Cluster
实现 完善&优化
High Availability RDB ZK Cluster Cluster Commands Heartbeat Metadata node Client Active Write edits Read edits Standby Share storage Local disk Local disk