构建现代数据湖

news2024/11/26 21:27:25

现代数据湖是一半数据仓库和一半数据湖,对所有事情都使用对象存储。使用对象存储来构建数据仓库是通过 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 正在重新定义表格式如何允许高效查询数据。这些技术都需要一个基于对象存储的现代数据湖,其中计算和存储是分解的,并针对工作负载进行优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1952399.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

800以内的蓝牙耳机推荐有哪些?四款优选精品百元蓝牙耳机推荐

面对市场上琳琅满目的品牌和型号&#xff0c;如何选择一款性价比高、功能全面的蓝牙耳机成为了一个让人头疼的问题&#xff0c;尤其是在众多的百元价位段的蓝牙耳机&#xff0c;800以内的蓝牙耳机推荐有哪些&#xff1f;作为一个选蓝牙耳机的过来人&#xff0c;我总结了四款优选…

一个极简的 vuedraggable 示例

https://andi.cn/page/621613.html

代码随想录算法训练营第 25 天 | LeetCode491.递增子序列 LeetCode46.全排列 LeetCode47.全排列ii

代码随想录算法训练营 Day25代码随想录算法训练营第 25 天 | LeetCode491.递增子序列 LeetCode46.全排列 LeetCode47.全排列ii 目录 代码随想录算法训练营前言LeetCode491.递增子序列LeetCode46.全排列LeetCode47.全排列ii 一、LeetCode491.递增子序列1.题目链接2.思路3.题解 …

React Native在移动端落地实践

在移动互联网产品迅猛发展的今天&#xff0c;技术的不断创新使得企业越来越注重降低成本、提升效率。为了在有限的开发资源下迅速推出高质量、用户体验好的产品&#xff0c;以实现公司发展&#xff0c;业界催生了许多移动端跨平台解决方案。这些方案不仅简化了开发流程&#xf…

轻松学EntityFramework Core--模型创建

一、使用代码优先&#xff08;Code-First&#xff09;创建模型 Code-First 方法是 EF Core 提供的一种用于定义模型的方式&#xff0c;它允许开发人员通过编写 C# 类来定义数据库模式&#xff0c;再通过迁移命令生成数据库表。下面我们来一起看一下代码优先如何使用。 1.1、创…

Collention集合基础知识

Array 数组是一种连续的内存空间存储相同数据类型数据的线性数据结构 数组获取其他元素的地址值 寻址公式 a[i] baseaddress i*datatypesize 为什么数组索引从0开始 从1开始不行吗 从0开始寻址公式 a[i] baseaddress i*datatypesize 从1开始寻址公式 a[i] baseadd…

利用GPT4o Captcha工具和AI技术全面识别验证码

利用GPT4o Captcha工具和AI技术全面识别验证码 &#x1f9e0;&#x1f680; 摘要 GPT4o Captcha工具是一款命令行工具&#xff0c;通过Python和Selenium测试各种类型的验证码&#xff0c;包括拼图、文本、复杂文本和reCAPTCHA&#xff0c;并使用OpenAI GPT-4帮助解决验证码问…

yolov5-7在opencv里跑自己的onnx模型

先把模型放在如下目录 运行如下代码 import cv2 import numpy as npclass Onnx_clf:def __init__(self, onnx:strdnn_model1/plane02.onnx, img_size640, classlist:list[plane]) -> None: func: 读取onnx模型,并进行目标识别para onnx:模型路径img_size:输出图片大小,和模…

Codeforces Round 962 (Div. 3) D. Fun (数学,暴力枚举)

非常好题目&#xff0c;使我思考良多。 经典的数学问题&#xff0c;题目给出了两道数学式子&#xff0c;当然就是要让我们推啊。 首先纠正一个错误&#xff0c;当我发现了这两个式子能凑出来平方式的时候我就想着去用两个式子来互相简化&#xff0c;但其实这样存在以下一个错误…

数据增强和数据平衡

数据增强&#xff08;Data Augmentation&#xff09; 数据增强是一种通过对数据进行变换来增加数据多样性的方法。它可以提高模型的泛化能力&#xff0c;特别是在图像和文本处理任务中。 原理 通过数据增强技术&#xff0c;生成更多样本&#xff0c;提高模型的泛化能力。例如…

Github个人网站搭建详细教程【Github+Jekyll模板】

文章目录 前言一、介绍1 Github Pages是什么2 静态网站生成工具3 Jekyll简介Jekyll 和 GitHub 的关系 4 Mac系统Jekyll的安装及使用安装Jekyll的简单使用 二、快速搭建第一个Github Pages网站三、静态网站模板——Chirpy1 个人定制 四、WordPress迁移到Github参考资料 前言 23…

chrome浏览器驱动(所有版本)

chrome浏览器驱动 114之前版本 https://chromedriver.storage.googleapis.com/index.html 125以后 125以后版本下载链接在此&#xff0c;只有后面status是绿色对勾的才可以下载&#xff0c;驱动大版本一致就可以使用&#xff0c;不需版本号一模一样&#xff1b;下载所需版本只…

STM32智能工业监控系统教程

目录 引言环境准备智能工业监控系统基础代码实现&#xff1a;实现智能工业监控系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;工业监控与优化问题解决方案与优化收尾与总结 1. 引言 智能工业监控系统通…

Java集合框架2024最通俗易懂(图片超全)

集合 1.1、定义 集合就是类型统一的数据组合而成的数据结构&#xff0c;该数据结构可以任意的改变长度。 1.3、Set Set数据存储结构&#xff0c;无序&#xff0c;且不可以重复&#xff0c;元素可以为null&#xff0c;但是也只能出现一次&#xff0c;如下图: 1.3.1、HashSe…

2. 卷积神经网络无法绕开的神——LeNet

卷积神经网络无法绕开的大神——LeNet 1. 基本架构2. LeNet 53. LeNet 5 代码 1. 基本架构 特征抽取模块可学习的分类器模块 2. LeNet 5 LeNet 5: 5 表示的是5个核心层&#xff0c;2个卷积层&#xff0c;3个全连接层.核心权重层&#xff1a;卷积层、全连接层、循环层&#xff…

从零开始学习网络安全渗透测试之基础入门篇——(二)Web架构前后端分离站Docker容器站OSS存储负载均衡CDN加速反向代理WAF防护

Web架构 Web架构是指构建和管理Web应用程序的方法和模式。随着技术的发展&#xff0c;Web架构也在不断演进。当前&#xff0c;最常用的Web架构包括以下几种&#xff1a; 单页面应用&#xff08;SPA&#xff09;&#xff1a; 特点&#xff1a;所有用户界面逻辑和数据处理都包含…

Apache Nifi挂接MQTT与Kafka实践

目录 1. 说明&#xff1a; 2. 方案设计&#xff1a; 2.1 资源配置&#xff1a; 2.2 交互Topics: 3. 实现步骤 3.1 Nifi 桌面 3.2 MqttToKafka 3.2.1 配置 3.2.2 测试 3.2.3 结果 3.3 KafkaToMqtt 3.3.1 配置 3.3.1 测试 3.3.1 结果 ​编辑 4. 总结&#xff…

web学习笔记(八十三)git

目录 1.Git的基本概念 2.gitee常用的命令 3.解决两个人操作不同文件造成的冲突 4.解决两个人操作同一个文件造成的冲突 1.Git的基本概念 git是一种管理代码的方式&#xff0c;广泛用于软件开发和版本管理。我们通常使用gitee&#xff08;码云&#xff09;来云管理代码。 …

使用SpringTask框架

目录 一.什么是SpringTask&#xff1f; 二.cron表达式&#xff1a; 三.SpringTask框架的使用操作&#xff1a; 1.导入maven坐标spring-context&#xff1a; 2.启动类添加 EnableScheduling 以此来开启任务调度&#xff1a; 3.自定义定时任务类&#xff1a; 普通案例&#…

如何写好技术文档 - 来自Google十多年的文档经验

[导读]本文大部分内容翻译总结自《Software Engineering at Google》第10章节 Documentation。另外&#xff0c;该书电子版近日已经可以免费阅读了https://qiangmzsx.github.io/Software-Engineering-at-Google/#/?idsoftware-engineering-at-google&#xff0c;有兴趣的同学可…