XSKY打造Hadoop HDFS高性能客户端,构筑数据湖理想底座
随着全球数据呈爆发式增长,基于海量数据的挖掘和分析,为用户带来了巨大的商业价值。源于开源平台的apache hadoop,允许使用简单的编程模型跨计算机集群分布式处理大型数据集,成为大数据时代最受欢迎的技术之一。
01 性能瓶颈
hdfs分布式文件系统作为hadoop的三大组件之一,是分布式计算中数据存储管理的基础。但是在hdfs传统架构下,hadoop扩展性受到了一定限制,容易出现性能瓶颈等问题。
图片来源:hadoop官方文档
例如,由于hdfs中每个文件、目录和数据块的元数据信息(大约150字节)必须存储在namenode的内存中,这也就意味着对于一个拥有大量文件的超大集群来说,内存将成为限制系统横向扩展的瓶颈。
同时,作为一个可扩展的文件系统,单个集群中支持数千个节点。在单个命名空间中datanode可以扩展的很好,但是namenode并不能在单个命名空间进行横向扩展。通常情况下,hdfs集群的性能瓶颈出现在单个namenode上。
虽然,在hadoop 2.x发行版中引入了联邦hdfs功能,允许系统通过添加多个namenode来实现扩展。但是,系统管理员需要维护多个namenodes和负载均衡服务,这又无形中增加了管理成本。
此外,大数据平台建设和应用中还亟待解决以下问题:
▪ 在传统的apache hadoop集群系统中,计算和存储资源紧密耦合。当存储空间或计算资源不足时,只能同时对两者进行扩容,不仅扩容不方便,且经济效率较低;
▪ hadoop的数据备份方案昂贵,且难以实现;
▪ 不同部门、平台各自建大数据系统,数据不共享,导致大数据计算平台碎片化,逐渐形成大数据烟囱。
02 xsky hdfs client
为了解决上述问题,业界一般采用对象存储来作为hadoop的后端存储,解决上面hdfs的各种问题,构建数据湖解决方案。
hadoop社区也开发了s3a连接器,用来对接标准的s3对象存储。但是,标准的s3a连接器的性能一般比hdfs要差很多,而且不支持追加写,因此只能支持部分对性能不高的业务,或者作为hadoop分层存储使用。
为此,xsky开发了基于对象存储xeos的专用hadoop hdfs高性能客户端xsky hdfs client。
xsky hdfs client和s3a架构对比
通过xsky hdfs client,hadoop应用可以访问存储在xeos中的所有数据,这就避免了传统的hadoop应用在进行数据分析前,还要将数据由业务存储移动到分析存储hdfs中。
xsky hdfs client为hadoop应用提供了标准的 hadoop 文件系统操作接口。在每个计算节点上,hadoop应用都将使用xsky hdfs client (jar) 执行 hadoop文件系统的操作,xsky hdfs client屏蔽了hadoop应用与xeos集群交互的复杂性。
相比于原生hadoop s3a对接对象存储的方式,xsky hdfs client可以直接访问存储集群的osd,io路径更短;同时,xsky hdfs client具有追加写的功能,可以匹配hadoop文件系统对追加写的需求。
xsky内部对在业界最广泛应用的hadoop商业发行版本之一cloudera cdh的testdfsio测试中显示,部署了xsky hdfs client的 xeos集群写性能超过采用remote hdfs系统的94%,读性能超过77%(两种测试硬件配置一样,节点数都是8节点,其中存储和datanode都是3节点)。
wordcount测试中,性能瓶颈主要在cdh计算集群的cpu使用率,两组测试环境计算集群的cpu均达到了100%。hdfs对1tb数据进行wordcount计算的时间消耗为46分22秒,而xeos的时间消耗为47分20秒,相差不大。
hbase写测试中,hdfs对30,000,000条数据进行写入时间消耗为2分23秒,而xeos的时间消耗为2分55秒,与hdfs比相差30秒左右。但是从hbase统计的iops来看,hdfs和xeos相差不大。
hbase读测试,hdfs对30,000,000条数据进行读取时间消耗为47秒,而xeos的时间消耗为46秒,几乎没有差别。但是从hbase统计的iops来看, xeos明显高于hdfs。
03客户收益
▪ 计算存储分离部署,按需扩容,大幅降低tco;
▪ 更加优化的性能,以及企业级存储特性;
▪ 适用于大数据平台的容灾备份;
▪ 同时支持生产业务、hadoop、mpp、ai等计算业务,解决数据孤岛问题;
▪ 一套存储系统,承载多个异构平台的数据整合,加速数据流动;
▪ nfs、hdfs、s3三种协议互通,三种协议来源的数据都可以统一进行in-place分析,分析结果可以通过s3实时发布。
xsky目前已经实现块、文件、对象、hdfs支持,为企业用户构建了真正统一的数据存储平台,可实现用户从核心生产到海量数据分析的最大化数据整合,助力构筑企业数据湖理想底座!