腾讯大数据团队主导Apache社区新一代分布式存储系统Ozone 1.0.0发布
近日,由腾讯大数据团队主导的Ozone 1.0.0版本在Apache Hadoop社区正式发布。经过2年多的社区持续开发和腾讯内部1000+节点的实际落地验证,Ozone 1.0.0已经具备了在大规模生产环境下实际部署的能力。
Ozone 是Apache Hadoop社区推出的新一代分布式存储系统,它的出现满足了大量小文件的存储问题,解决了Hadoop分布式文件系统在可扩展性上的缺陷。作为Hadoop生态圈的一款新的对象存储系统,能够支持百亿甚至千亿级文件规模的存储。
腾讯大数据团队Ozone项目负责人陈怡表示,作为大数据领域的领导厂商,腾讯是国内一线互联网公司中最早加入社区的,目前已经在Ozone项目上已经主导完成了集群网络拓扑感知的开发,以及数据写入Multi-Raft Pipeline功能的开发。同时,主导的StorageContainerManager(SCM) 高可用HA功能也正在开发中。
以集群网络拓扑感知来说,在传统的大数据构架下,有了网络拓扑结构,计算引擎的调度器可以将任务调度到离数据最近的节点来获取“数据的局部性”。即便是新兴的计算存储分离构架,同样也需要集群网络拓扑信息,来保证数据的故障容错能力和高可用性。
Ozone 架构图
陈怡进一步介绍说,在Ozone 的Alpha 发布后,腾讯内部的大数据平台上线了Ozone生产集群,承接了一部分业务的数据存储。随着数据服务体量的增加,逐渐发现Ozone写入性能显现出了一定的波动和瓶颈。基于这个发现,腾讯Ozone项目组设计并开发了数据写入Multi-Raft Pipeline功能,显著的提升了Ozone的写入吞吐量和性能。
此外,为了测试Ozone整体的稳定性和性能,作为部署应用的先锋小队,腾讯内部部署了一个1000个数据节点的集群。进行了长达几个月的稳定性和压力测试。期间团队遇到并解决了各种OOM、节点Crash、性能低于预期等问题。经过全面的优化之后,单集群1000个节点现已能长时间稳定运行,并且所有的数据都校验确认正确无误。
除了1000个节点集群的测试,1.0.0版本还进行10亿个元数据对象的测试和优化,进一步解决长期困扰HDFS的大量小文件问题。目前Ozone 1.0.0能够轻松支持10亿个10KB小对象的写入,同时元数据节点内存使用不超过64GB。
为了确保Ozone和Hive、Spark、Impala等计算框架的无缝对接,Ozone 1.0.0进行了和Hive LLAP、Spark以及Impala的集成测试。TPC-DS的测试表明,在100GB和1TB两种数据量大小下,Ozone总体比HDFS有3.5%的优势。
经过不断的测试和优化,升级后的Ozone 1.0.0在版本功能上有了质的跨越。除了支持 Hadoop Compatible FileSystem、Hadoop 2.x以及 Hadoop3.x环境,Ozone 1.0.0还兼容Hadoop生态的Kerberos认证体系,支持数据的用户无感知加密存放和Ranger授权集成、GDPR “Right to Erasure”以及网络构架感知。
未来,腾讯大数据将继续发挥自身技术优势和积累,在Ozone的基础上开发基于SCM的新一代高性能分布式文件系统,并持续推进Ozone在更多腾讯内外部业务的实践落地,部署更大规模的生产集群。同时,进一步拥抱开源,深度参与Hadoop社区,提高Ozone的可靠性、稳定性和性能,将其打造成新一代大数据文件和对象混合存储系统。
除了在Ozone 项目上的贡献之外,近年来腾讯大数据在开源领域的贡献正在逐步加速,目前已完成了大数据核心能力全开源。同时,还结合实际业务场景推动开源技术加速落地,通过技术实践和创新持续回馈社区贡献开源。在Apache基金会的大数据项目上,腾讯已经为主流的Hadoop、Spark、Flink等项目贡献了大量的特性和patch。