现代数据湖是一半数据仓库和一半数据湖,对所有事情都使用对象存储。使用对象存储来构建数据仓库是通过 Open Table Formats OTF) 实现的,例如 Apache Iceberg、Apache Hudi 和 Delta Lake,这些规范一旦实现,就可以无缝地将对象存储用作数据仓库的底层存储解决方案。这些规范还提供了传统数据仓库中可能不存在的功能,例如快照(也称为时间旅行)、架构演变、分区、分区演变和零拷贝分支。
在组织构建现代数据湖时,我们认为他们应该考虑以下一些关键因素:
1 . 计算和存储的分解
2 . 从整体框架迁移到同类最佳框架
3 . 数据中心整合 - 用单一的企业解决方案取代部门解决方案
4 . 跨小型和大型文件/对象的无缝性能
5 . 水平扩展的软件定义的云原生解决方案
本文探讨了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 推广的 Strangler Fig Pattern 等方法迁移数据分析和数据科学工作负载。以下是 MinIO 成为现代数据湖的基本构建块的其他几个原因,该数据湖能够支持您的 IA 数据基础架构以及其他分析工作负载,例如商业智能、数据分析和数据科学。
现代数据就绪
Hadoop 是专门为“非结构化数据”是指大型(GiB 到 TiB 大小)日志文件的数据而构建的。当用作真正的非结构化数据发挥作用的通用存储平台时,小对象(KB 到 MB)的盛行极大地损害了 Hadoop HDFS,因为名称节点从未设计为以这种方式扩展。MinIO 在任何文件/对象大小(8KiB 到 5TiB)上都表现出色。
开源
采用Hadoop的企业是出于对开源技术的偏好。检查能力、不受锁定的自由以及来自数以万计的用户的舒适性具有真正的价值。MinIO 也是 100% 开源的,确保组织在升级体验的同时能够忠于自己的目标。
简单
简单是很难的。这需要工作、纪律,最重要的是承诺。MinIO 的简单性堪称传奇,是使我们的软件易于部署、使用、升级和扩展的哲学承诺的结果。即使是Hadoop的粉丝也会告诉你它很复杂。要事半功倍,您需要迁移到 MinIO。
性能
Hadoop因其提供大数据性能的能力而声名鹊起。在十年的大部分时间里,它们都是企业级分析的基准。现在不是了。MinIO已经在多个基准测试中证明,它比Hadoop快得多。这意味着现代 Datalake 的性能会更好。
轻
MinIO 的服务器二进制文件全部为 <100MB。尽管它很大,但它足够强大,可以运行数据中心,但仍然足够小,可以在边缘舒适地生活。在Hadoop世界中没有这样的选择。这对企业来说意味着您的 S3 应用程序可以随时随地使用相同的 API 访问数据。通过将 MinIO 部署到边缘位置,您可以在边缘捕获和筛选数据,并使用 MinIO 的复制功能将其运送到现代数据湖进行聚合和进一步分析。
弹性
MinIO 使用每个对象的内联纠删码来保护数据,这比 HDFS 替代方案效率高得多,后者在复制后出现且从未被采用。此外,MinIO 的 bitrot 检测确保它永远不会读取损坏的数据——即时捕获和修复损坏的对象。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 正在重新定义表格式如何允许高效查询数据。这些技术都需要一个基于对象存储的现代数据湖,其中计算和存储是分解的,并针对工作负载进行优化。