欢迎来到天天文库
浏览记录
ID:37323547
大小:577.73 KB
页数:17页
时间:2019-05-21
《HDFS元数据的独立服务和独立持久化存储》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、HDFS元数据的独立服务和独立持久化存储2009-8-22罗李Email:luoli523@gmail.comTwitter:luoli523主要内容起因现状我们的想法我们的实现后续的发展起因•数据的急剧膨胀•文件数的不断增多•Block随之成倍的增长•内存的急剧上涨•内存数据结构•一致性保证造成的性能瓶颈•Meta服务依靠namenode的启停•部分meta数据没有持久化(block->dn)现状•集群–单个集群1900台机器1T×12(2T×6)•数据量–22.28PB/36.98PB60%•文件数–1亿左右•Block数–1.3亿左右•Meta存储
2、–只持久化了namespace的信息到fsimage现状•内存–60G/80G~75%•数据结构–BlockMap靠内存中ref来维护block->dn的信息•响应•删除文件个数1100万,每天的删除操作为240万•创建文件操作900万~1200万•重命名文件数量为1050万•通过文件名获取block及其位置的操作getBlockLocations有近3亿•类似“ls”的操作有700万新的架构(InnodbonFusionIO)BlockChecker(InnodbonFusionIO)StateManagerStateManagerDatanodeBl
3、ockFileZookeeperZookeeperStatelessStatelessStatelessNamenodeNamenode…NamenodeDatanodeDatanodeDatanode…DatanodeNamenode的改进•无状态NN:针对HDFS中Namenode单点瓶颈的问题,TBFS通过无状态方式实现Namenode的水平扩展。为了实现无状态Namenode,需要将以前保留在Namenode内存中的关键数据结构部分或全部挪到第三方,并持久化保存。数据结构名称描述dir保存HDFS目录结构的数据结构FSDirectory(文件->
4、块的对应关系)blocksMap保存块与文件、块与datanode和datanode与块的对应关系datanodemap保存datanode的storageID和对应DatanodeDescriptor的Map容器heartbeats保存拥有心跳的Datanode的DatanodeDescriptor的容器corruptReplicas保存损坏块的Map容器,key为Block,value为对应Datanode的DatanodeDescriptor集合recentInvalidateSets保存即将删除的块的Map容器,key为Datanode的Stor
5、ageID,value是块的Block集合excessReplicateMap保存多余块的Map容器,key为Datanode的storageID,value是块的Block集合保存少于replication数的块的数据结构,其内部维护了一个List>neededReplications类型的优先级队列pendingReplications保存处于replicationpending状态的block,如果超时则放入TimeoutItems列表中leaseManager维护写操作和追加操作租约的数据结构7Namenode的改进
6、(续1)将BlocksMap和FSDirectory在数dir据库中实现持久化保存(InnodbonFusionIO)blocksMap(InnodbonFusionIO)StateManagerStateManagerDatanodeBlockFileheartbeatsdatanodeMapdatanodeMap和heartbeats的数据从数据•基于树状结构来描述Map和Set,比Stateless库中读取,Namenode中只是缓存较直观,操作方便Stateless•提供了ephemeral和sequenceNamenodeStatelesszn
7、ode的机制,方便做成员管理和提Namenode供分布式锁服务NamenodeZooKeeper•提供了Watcher机制,提供对数据变/化的通知LeaseManger…namenodedatanodeblockcheckerZookeeperpendinleaseunderexcesscorruptinvalidategroup为LeaseManager保g存全局lease信息维护under维护excess维护维护TBFS维护replication维护corruptreplicationreplicationinvalidate集群中pending相关
8、的块相关的持相关的持久相关的持久块相关的持namenode8持久化数据久化数据化
此文档下载收益归作者所有