构建现代数据湖

现代数据湖 是一个数据仓库和数据湖的结合,它使用对象存储来存储所有数据。 开放式表格式(OTFs)如 Apache Iceberg、Apache Hudi 和 Delta Lake 使得使用对象存储构建数据仓库成为可能,这些规范一旦实施,便可使对象存储无缝地用作数据仓库的基础存储解决方案。 这些规范还提供传统数据仓库中可能不存在的功能,例如快照(也称为时间旅行)、模式演进、分区、分区演进和零复制分支。
随着组织构建现代数据湖,以下列出了一些我们认为他们应该考虑的关键因素
- 计算和存储分离
- 从单体框架迁移到最佳框架
- 数据中心整合 - 用单一的企业解决方案替换部门解决方案
- 在小型和大型文件/对象之间实现无缝性能
- 以软件定义的、云原生的解决方案,实现水平扩展
本文探讨了 Hadoop HDFS 的兴衰,以及为什么高性能对象存储是大数据世界中自然的继任者。
Hadoop 的采用
随着互联网应用的扩展,15 年前,先进科技公司开始面临数据存储和聚合方面的重大挑战。传统的 RDBMS(关系数据库管理系统)无法扩展到处理大量数据。 然后出现了 Hadoop,这是一种高度可扩展的模型。 在 Hadoop 模型中,大量数据被分成多个廉价的机器,这些机器构成一个集群,然后并行处理数据。 根据企业的需要,这些机器或节点的数量可以增加或减少。
Hadoop 是开源的,并且使用具有成本效益的商用硬件,这提供了一种经济高效的模型,不同于传统的需要昂贵硬件和高端处理器的关系数据库来处理大数据。 由于 RDBMS 模型扩展成本过高,企业开始删除原始数据。 这导致了在多个方面产生次优的结果。
在这方面,Hadoop 在 RDBMS 方法方面提供了显著的优势。 从成本角度来看,它更具可扩展性,同时不会牺牲性能。
Hadoop 的终结
诸如变更数据捕获 (CDC) 和流式数据等新技术的出现,主要来自 Twitter 和 Facebook 等社交媒体公司,改变了数据的摄取和存储方式。 这带来了处理和使用这些更大数据量的挑战。
一个关键的挑战是批处理。 批处理在后台运行,不与用户交互。 在处理非常大的文件时,Hadoop 在批处理方面效率很高,但在处理较小的文件时却很差 - 既从效率的角度来看,也从延迟的角度来看 - 随着企业寻求能够以批处理、CDC 和实时方式摄取各种大小的数据集的处理和使用框架,这实际上使其过时。
如今,分离计算和存储是有道理的。 存储需要比计算快十倍。 这在 Hadoop 世界中效率低下,您需要一个计算节点对应一个存储节点。 分开它们意味着它们可以被单独调整。 计算节点是无状态的,可以通过更多的 CPU 内核和内存进行优化。 存储节点是有状态的,可以通过更多数量的更密集的驱动器和更高的带宽进行 I/O 优化。
通过分离,企业可以实现更好的经济效益、更好的可管理性、更好的可扩展性和更高的总拥有成本。
HDFS 无法进行这种转变。 当您离开数据本地性时,Hadoop HDFS 的优势就变成了它的弱点。 Hadoop 是为 MapReduce 计算而设计的,在这种情况下,数据和计算必须位于同一位置。 因此,Hadoop 需要自己的作业调度器、资源管理器、存储和计算。 这与基于容器的架构根本不兼容,在基于容器的架构中,一切都是弹性的、轻量级的和多租户的。
相反,MinIO 是云原生的,专为容器和通过 Kubernetes 进行编排而设计,使其成为在淘汰旧版 HDFS 实例时过渡到现代技术的理想技术。
这催生了现代数据湖。 它利用了从 Hadoop 继承的商用硬件方法,但将存储和计算分离,从而改变了数据的处理、分析和使用方式。
使用 MinIO 构建现代数据湖
MinIO 是一种高性能对象存储系统,它是从头开始构建的,以实现可扩展性和云原生。 构建 MinIO 的团队之前还构建了最成功的文件系统之一 GlusterFS,然后他们对存储的想法进行了发展。 他们对文件系统的深刻理解以及哪些进程昂贵或低效,为 MinIO 的架构提供了信息,并在过程中实现了性能和简便性。
MinIO 使用擦除编码,并提供更好的算法来管理存储效率和提供弹性。 通常情况下,它是 1.5 倍复制,而不是 Hadoop 集群中的 3 倍。 单凭这一点就可以提高存储效率,并降低与 Hadoop 相比的成本。
从一开始,MinIO 就为云操作模型而设计。 因此,它可以在所有云上运行 - 公共云、私有云、本地、裸机和边缘。 这使其成为多云和混合云部署的理想选择。 通过混合配置,MinIO 能够根据 Martin Fowler 推广的 绞杀者模式 等方法迁移数据分析和数据科学工作负载。
以下是 MinIO 是现代数据湖的基础构建块的几个其他原因,它能够支持您的 IA 数据基础设施以及其他分析工作负载,如商业智能、数据分析和数据科学。
现代数据就绪
Hadoop 是专门为数据而设计的,其中“非结构化数据”是指大型(GiB 到 TiB 大小)日志文件。 当用作通用存储平台时,真正的非结构化数据在其中发挥作用,小型对象的流行(KB 到 MB)极大地损害了 Hadoop HDFS,因为名称节点从未设计成以这种方式扩展。 MinIO 在任何文件/对象大小(8KiB 到 5TiB)方面都很出色。
开源
采用 Hadoop 的企业之所以这样做,是因为他们更喜欢开源技术。 检查的能力、不受锁定的自由以及数以万计用户带来的安心,具有真正的价值。 MinIO 也是 100% 开源的,确保组织能够在升级体验的同时,忠于自己的目标。
简单
简单性很困难。 它需要付出努力、纪律,最重要的是承诺。 MinIO 的简单性是传奇的,这是对让我们的软件易于部署、使用、升级和扩展的哲学承诺的结果。 即使是 Hadoop 的粉丝也会告诉你它很复杂。 为了用更少的资源做更多的事情,你需要迁移到 MinIO。
高性能
Hadoop 因为其提供大数据性能的能力而声名鹊起。 他们几乎十年来一直是企业级分析的基准。 现在已经不是这样了。 MinIO 在多个 基准测试 中证明,它明显快于 Hadoop。 这意味着您的现代数据湖将获得更好的性能。
轻量级
MinIO 的服务器二进制文件只有 <100MB。 尽管它很小,但它功能强大,足以运行数据中心,但仍然足够小,可以在边缘舒适地运行。 在 Hadoop 世界中没有这样的替代方案。 对企业来说,这意味着您的 S3 应用程序可以随时随地使用相同的 API 访问数据。 通过将 MinIO 部署到边缘位置,您可以捕获和过滤边缘数据,并使用 MinIO 的复制功能将其发送到您的现代数据湖,以进行聚合和进一步分析。
弹性
MinIO 使用每个对象的内联擦除编码来保护数据,这比 HDFS 替代方案(在复制之后出现,但从未被采用)效率高得多。 此外,MinIO 的位腐烂检测确保它永远不会读取损坏的数据 - 动态捕获和修复损坏的对象。 MinIO 还支持跨区域的活动-活动复制。 最后,MinIO 支持完整的对象锁定框架,提供法律保留和保留(具有治理和合规模式)。
软件定义
Hadoop HDFS 的继任者不是硬件设备;它是在商用硬件上运行的软件。 这就是 MinIO - 软件。 与 Hadoop HDFS 一样,MinIO 旨在充分利用商用服务器。 通过利用 NVMe 驱动器和 100 GbE 网络,MinIO 可以缩减数据中心 - 提高运营效率和可管理性。
安全
MinIO 支持多种复杂的服务器端加密方案来保护数据 - 无论数据存储在哪里 - 处于传输中或静止状态。MinIO 的方法通过可忽略不计的性能开销来确保机密性、完整性和真实性。服务器端和客户端加密使用 AES-256-GCM、ChaCha20-Poly1305 和 AES-CBC,以确保应用程序兼容性。此外,MinIO 支持行业领先的密钥管理系统 (KMS)。
从 Hadoop 迁移到 MinIO
MinIO 团队拥有从 HDFS 迁移到 MinIO 的专业知识。购买企业版许可证的客户可以获得我们工程师的帮助。要了解有关使用 MinIO 替换 HDFS 的更多信息,请查看 此资源集合.
结论
如今,每个企业都是数据企业。数据的存储和后续分析需要无缝、可扩展、安全和高效。Hadoop 生态系统中产生的分析工具(如 Spark)与基于对象存储的数据湖配对时,会更有效率。像 Flink 这样的技术提高了整体性能,因为它为流式处理和批处理提供了单一运行时,而在 HDFS 模型中这些运行时效果并不理想。像 Apache Arrow 这样的框架正在重新定义数据的存储和处理方式,而 Iceberg 和 Hudi 正在重新定义表格式如何允许高效查询数据。
所有这些技术都需要现代化的、基于对象存储的数据湖,在数据湖中,计算和存储是解耦的,并针对工作负载进行了优化。如果您在构建自己的现代数据湖时有任何疑问,请随时通过 hello@min.io 或我们的 Slack 频道与我们联系。