• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

非结构化数据怎么存?——开源对象存储方案介绍

开发技术 开发技术 4小时前 1次浏览

过去的相当长的一段时间里,商用对象存储占据了市场上的大量的份额。国外的Amazon S3,国内的阿里云OSS都成为了大多数公司的选择。但是构建一个企业级的数据湖(包括结构化和非结构化数据)已经成为了越来越多公司的目标。那么Hadoop还能满足我们的要求吗?还是我们需要更多的选择?

存储方案

如图所示,底层存储大体可以分为四类。对象存储(Object Storage),NoSQL 数据库(NoSQL Sources),关系型数据库(RDBMS Storage),大数据(Hadoop)。

非结构化数据怎么存?——开源对象存储方案介绍

对于大量的数据存储与归档,毫无疑问Hadoop是一个不错的选择。但是Hadoop是为大文件存储而设计的,在小文件存储中有着非常大的劣势。

HDFS缺陷

元数据的扩展性:NameNode是一个中央元数据服务节点,也是集群管理节点,文件系统的元数据以及块位置关系全部在内存中。NameNode对内存的要求非常高,需要定制大内存的机器,内存大小也限制了集群扩展性。

全局锁:NameNode 有一把FSNamesystem全局锁,每个元数据请求时都会加这把锁。虽然是读写分开的,且有部分流程对该锁的持有范围进行了优化,但依然大问题。

块汇报风暴:HDFS块大小默认128M,启动几百PB数据量的集群时,NameNode需要接受所有块汇报才可以退出安全模式,因此启动时间会达数小时。

毫无疑问,对象存储才是最佳的解决方案。

什么是对象存储

对象存储,是一种扁平结构,其中文件被分解成碎片并分散在硬件中。在对象存储中,数据被分成称为对象的离散单元并保存在单个存储库中,而不是作为文件夹中的文件或服务器上的块保存。

非结构化数据怎么存?——开源对象存储方案介绍

比如阿里云对象存储就是基于对象存储提高的服务。

阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。其数据设计持久性不低于99.9999999999%(12个9),服务可用性(或业务连续性)不低于99.995%。

  • 对象(Object)是OSS存储数据的基本单元,也被称为OSS的文件。对象由元信息(Object Meta)、用户数据(Data)和文件名(Key)组成。对象由存储空间内部唯一的Key来标识。对象元信息是一组键值对,表示了对象的一些属性,例如最后修改时间、大小等信息,同时您也可以在元信息中存储一些自定义的信息。
  • 存储空间(Bucket)是您用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。存储空间具有各种配置属性,包括地域、访问权限、存储类型等。您可以根据实际需求,创建不同类型的存储空间来存储不同的数据。

开源对象存储方案

部署自己的对象存储的最大优势就是可以把数据存在私有存储里。还好目前已经有了很多的开源方案已经出现,他们大多支持 Amazon 的 S3 协议,并允许您直接从本地数据湖中查询数据。

MinIO

MinIO是个高性能,云原生的对象存储。Github有进30K的Stars。

https://github.com/minio/minio

它提供了与 Amazon S3 云存储服务兼容的 API,使用 MinIO 为机器学习、分析和应用程序数据工作负载构建高性能基础架构。

轻量,操作简单。

Ceph

Ceph 是一个分布式对象、块和文件存储平台。

https://github.com/ceph/ceph

红帽支持的存储解决方案,能够提供企业中三种常见的存储需求:块存储、文件存储和对象存储,相当于是全平台解决方案。

当然这么强大的解决方案,对于运维的要求也是非常的高。

目前来看,MinIO是一个不错的选择。

SeaweedFS

SeaweedFS是一种简单的、高度可扩展的分布式文件系统。旨在优化Fackbook内部图片存储和获取。

Githup地址为: https://github.com/chrislusf/seaweedfs

SeaweedFS最初作为一个对象存储来有效地处理小文件。中央主服务器只管理文件卷,而不是管理中央主服务器中的所有文件元数据,它允许这些卷服务器管理文件及其元数据。这减轻了中央主服务器的并发压力,并将文件元数据传播到卷服务器,允许更快的文件访问(只需一个磁盘读取操作)。

综上,目前来看MinIO的资料更全面一些,是一个不错的选择。

更多大数据技术与学习交流,欢迎关注 大数据流动

非结构化数据怎么存?——开源对象存储方案介绍


程序员灯塔
转载请注明原文链接:非结构化数据怎么存?——开源对象存储方案介绍
喜欢 (0)