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功能优化
谢 谢!