资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
1 许春玲,张广泉. 分布式文件系统Hadoop HDFS与传统文件系统Linux FS的比较与分析J.苏州:苏州大学学报(工科版), 2010,30(4):6-9.一、 HDFS实现分布式的关键技术分析1. 用户群空间和物理空间的彼此独立:通过添加Block层来实现l Map1: ;l Map2: ;(以上两组映射封装在B locksMap 以哈希映射实现, 作为描述Block 的重要元数据Blockinfo封装了该Block相关的INode、DataNode。)l Map3: (Map1逆向), 作为目录树的最底层存放在FSImage;l Map4: (Map2逆向), DataNodeDescr iptor中定义的Block List。2. 数据块映射BlockMap从HDFS目前的设计架构来看, 前面的Map1、Map2通过Java的Map界面实现, 而Hadoop基于MapReduce范式也实现了自己的应用程序界面Mapper、Rducer。JavaMap以整个集合为操作对象, 不利于任务的分解和并行处理, 因此HDFS仅在数据的存储上实现分布式, 对算法和操作的实现依旧是集中式的。这样的设计, 造成集群过分依赖NameNode, 当文件系统越来越庞大、目录树的结构越来越复杂时, NameNode的处理能力将成为HDFS的瓶颈。也许正是考虑到HDFS整个集群目录的操作都集中在一台NameNode上, 所以出现了前面HDFS设计的两个重点, 努力简化目录树结构以减少空间占用。即便如此, 从长远来看日益庞大的集群(甚至可能在将来出现涵盖整个互联网的唯一集群)使简化的目录树无法从根本上解决问题, 而一旦NameNode崩溃, 则意味着集群的瘫痪。3. NameNode瓶颈解决思路:将MapReduce范式引入HDFS统一空间中的Block有两个属性: 所属的文件( INodefile)和所属的DataNode, 第一个属性可能为空。相应的Map产生两个键值对 、 , 如果将两个键封装在一起INodeF ile, DataNode 则有 。对于 , 假设Reduce 表示先根据INodeFile做Reduce, 再根据DataNode做Reduce, 则可以据此找出每个文件(由INodefile代表)存储在哪些DatatNode, 过程类似于SQL中有两个键值的Group By。以一次读操作为例, 参考图6先执行Map3将INodeFile映射到Block, 再执行Reduce2将同一个DataNode的Block聚集在一起; 反向则先执行Map4将DataNode映射到Block, 再执行Reduce1将同一个文件的Block聚集起来。其中Map3与Reduce1互逆, Map4与Reduce2互逆。Reduce操作的效果图如图7所示。思考 将MapReduce范式引入HDFS具体怎么实现,没有看懂?
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号