专栏首页叁金大数据漫谈未来的HDFS

漫谈未来的HDFS

前面我们提到的HDFS,了解了HDFS的特性和架构。HDFS能够存储TB甚至PB规模的数据是有前提的,首先数据要以大文件为主,其次NameNode的内存要足够大。对HDFS有所了解的同学肯定都知道,NameNode是HDFS的存储着整个集群的元数据信息,比如所有文件和目录信息等等。而且当元数据信息较多时,NameNode的启动会变得很慢,也比较容易触发GC操作。显然当数据到了一定的量级,元数据管理会成为HDFS的一个瓶颈,其实这也是为什么说它适合存储大文件的原因。如果解决了元数据管理的问题,其实HDFS是可以支撑海量小文件的。

终于到了本篇文章的重头戏:Ozone,Ozone是Hortonworks基于HDFS实现的一个对象存储服务,旨在基于HDFS的DataNode存储,支持更大规模的数据对象存储,支持各种对象大小并且拥有HDFS的可靠性,一致性和可用性,详情请看Hadoop的Jira HDFS-7240。经过这么长时间的发展和激烈的名称讨论之后最终会命名为HDDS(Hadoop Distributed Data Store)详见Jira HDFS-10419。

那么Ozone是如何解决HDFS的现有问题的呢?

Ozone的主旨就是 Scaling HDFS(缩放HDFS)。缩放HDFS即针对HDFS当前存在的问题:NameNode元数据管理瓶颈进行处理,一方面减轻NameNode的压力,一方面抽象另外一层映射保证数据的快速读取和写入。

HDFS目前的分层如下:

  1. A namespace layer(命名空间层) 在NameNode服务中实现
  2. A block layer(Block块层) 主要在DataNode服务中实现,并且NameNode也会提供一个block management服务。

Ozone的设计就是针对于HDFS目前的分层去缩放相关的功能模块。

命名空间层:

  1. Scaling NameSpace(缩放命名空间)
  2. Scaling client/rpc load on NN(缩放NameNode支撑的请求)
  3. NN startup time(缩短NameNode的启动时间)

Block块层:

  1. Scaling block namespace(缩放block块的命名空间)
  2. Scaling block reports(缩放block块向NN的报告请求)
  3. Scaling Datanode‘s block management(缩放Block块管理层)

解决HDFS现有的问题需要同时从上面两个维度对HDFS进行优化,在其设计论文中简要描述了如何实现命名空间和Block块的缩放工作,比如参考了Ceph的分布式命名空间,或者针对于频繁操作的数据保存到内存的workingSet中,其他数据进行持久化等等。同时抽象一个大小约为2G~16G的block group层叫做container,解决Block块的缩放问题,这里我们可以脑补一下Ceph的PG。

而Ozone最终实现了两个服务来实现上面的解决方案:KSM(Key Space Manager) 和 SCM(Storage Container Manager)

KSM:负责管理的是Ozone命名空间。所有的volume,bucket、key的记录信息都保存在了KSM中。此角色类似于HDFS的NameNode。

SCM:负责管理"Container"对象,Container在逻辑上存储的是block块对象集合。DataNode是以Container的形式来提供存储能力。SCM只负责维护这些Container信息。原先的block report就会变成container report

同时Ozone也实现了一套文件系统接口,Ozone FS,它完全兼容现有的HDFS读写方式,支持Spark,Hive等程序。可以支持方便的将数据从老的HDFS转移到Ozone中。

而最终我们期待的更加完美的HDFS应该是这样的。

参考资料: 聊聊HDFS和Ozone的融合 HDFS+Scalability-v2

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://www.cnblogs.com/jixin/复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 漫谈未来的HDFS

    前面我们提到的HDFS,了解了HDFS的特性和架构。HDFS能够存储TB甚至PB规模的数据是有前提的,首先数据要以大文件为主,其次NameNode的内存要足够大...

    用户3128938
  • 漫谈未来数仓架构如何设计

    大家好,我是峰哥,夏天已经来了,小麦马上要丰收了,今天分享一篇关于未来数仓架构发展方向的文章。

    数据社
  • 【周末漫谈】人工智能的原理,技术和未来

    ? 星期二早上8:00。你已经醒了,扫了一眼手机上的标题,回复了一个在线帖子,为你妈妈订购了一件假日毛衣,锁上屋子开车上班,路上听一些好听的曲子。 在这个过...

    钱塘数据
  • 日常评 | 深夜,来谈一谈未来 #191005

    假期已经过半,近期对于未来的科技发展,有些许想法从头脑中迸出。趁着假期这个机会分享给大家。

    ZNing
  • MySQL中的Percona-toolkit工具由来漫谈

    首先问一个问题,你听说过下面这两个工具吗? Maatkit 和Aspersa 如果听过,可能就暴露年龄了,你如果现在去查Aspersa相关的文章,会发现下载链接...

    jeanron100
  • 浅谈Database Mesh及未来

    Database Mesh,这一概念是由开源软件shardingsphere的作者张亮,最早于2018年提出的。其含义是Database Mesh 使用一个啮合...

    用户5548425
  • 浅谈Xamarin Community Toolkit的未来发展

    .NET MAUI会在今年晚些时候发布,我们也很高兴和大家一起分享我们对Xamarin Community Toolkit的计划! 这包括 .NET MAUI ...

    dotnet9.com
  • 硅谷投资人弓峰敏漫谈 | 互联网安全创投的现在与未来

    *FreeBuf官方出品,本文根据弓峰敏先生专访素材撰写,作者Sophia,转载请联系editor@tophant.com 黑客窃取、病毒攻击、邮箱莫名被盗...

    FB客服
  • 谈谈React事件机制和未来(react-events)

    当我们在组件上设置事件处理器时,React并不会在该DOM元素上直接绑定事件处理器. React内部自定义了一套事件系统,在这个系统上统一进行事件订阅和分发.

    _sx_
  • 浅谈PHP程序员的前程未来

    沈唁
  • 简谈 HDFS 的高可用 HA

    作为一个服务提供者,高可用是一个不得不说的话题,那么今天我们就来聊一聊 HDFS 的高可用,我们主要从以下几点来简单说一说:

    solve
  • 此生无悔入漫威,10 份周边送给「超级英雄」的粉丝们

    知晓君
  • 漫画说算法|人工智能与我们的未来

    为了让小伙伴更加容易理解经典算法,留下深刻印象,小白决定创办「漫画说算法」,分享讲解算法的漫画文章,在阅读漫画的过程中学习。如果小伙伴有收藏的优秀文章,欢迎后台...

    小白学视觉
  • 本人公众号文章目录

    以太坊源码分析---go-ethereum之MPT(Merkle-Patricia Trie)

    月牙寂道长
  • 【技术】HDFS存储原理

    根据Maneesh Varshney的漫画改编,以简洁易懂的漫画形式讲解HDFS存储机制与运行原理,非常适合Hadoop/HDFS初学者理解。 一、角色出演 ...

    小莹莹
  • 漫谈计算机与程序是怎样跑起来的

    0 布尔代数只需要使用一些简单的运算规则和两个符号,如二进制的0或1。布尔代数是英国人布尔(Boole)于1847年提出来的,是数学和逻辑学的结合。

    IT大咖说
  • HBase原理(一):架构理解

    Apache HBase 是基于 Hadoop 构建的一个分布式的、可伸缩的海量数据存储系统。常被用来存放一些海量的(通常在TB级别以上)、结构比较简单的数据,...

    create17
  • hadoop集群的启动与停止

    这些名称是我的三台机器的主机名,各位请改成自己的主机名! 注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。

    孙晨c
  • 漫谈MySQL的锁机制

    检查table_locks_waited和table_locks_immediate状态变量分析

    JavaEdge

扫码关注云+社区

领取腾讯云代金券