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