构建现代数据湖

现代数据湖是一半数据仓库和一半数据湖,对所有事情都使用对象存储。使用对象存储来构建数据仓库是通过 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.mzph.cn/web/49469.shtml

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

相关文章

PHP基础语法-Part1

脚本格式 PHP脚本以<?php开头&#xff0c;以?>结尾&#xff1b; PHP语句以分号结尾&#xff08;;&#xff09; PHP是解释型语言&#xff1b; 输入和输出 获取用户的输入&#xff1a; $input readline("input:"); echo $input; echo "input:";…

vllm部署记录

1. pip安装 pip install vllm 下载模型在huggingface.co 注意在modelscope上的这个opt-125m好像不行了,我git不下来报错 启动服务 vllm serve opt-125m --model opt-125m --port 8888 第一个opt-125m是名字,可以在vllm支持的模型中查到,第二个是模型存放文件夹及其路径…

Github 2024-07-26开源项目日报 Top10

根据Github Trendings的统计,今日(2024-07-26统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目2TypeScript项目2C++项目2HTML项目1Python项目1C#项目1Lua项目1JavaScript项目1Vue项目1C项目1免费编程学习平台:freeCodeCamp.org 创…

为什么很多人在一定年龄后的肥胖无法避免

人体在营养均衡状态的时候&#xff0c;是不容易长胖的&#xff0c;且身体也远比一般人更健康些&#xff0c;但想要一直维持身体的这种健康均衡的状态&#xff0c;不仅生活上要很有规律&#xff0c;饮食上也要营养均衡才行。但以如今社会的快节奏生活而言&#xff0c;基本没有人…

计算机毕业设计-程序论文-基于 Java 的高校教资报名系统的设计与实现

本系统开发采用技术为JSP、Bootstrap、Ajax、SSM、Java、Tomcat、Maven 此文章为本人亲自指导加编写&#xff0c;禁止任何人抄袭以及各类盈利性传播&#xff0c; 相关的代码部署论文ppt代码讲解答辩指导文件都有可私要 项目源码&#xff0c;请关注❥点赞收藏并私信博主&#x…

软考-软件设计师(4)-计算机网络与安全:OSI七层、子网划分、网络安全控制技术、网络安全协议、网络安全威胁、对称与非对称加密等高频考点

场景 软考-软件设计师-计算机网络与信息安全模块高频考点整理。 以下为高频考点、知识点汇总,不代表该模块所有知识点覆盖,请以官方教程提纲为准。 注: 博客:霸道流氓气质-CSDN博客 实现 知识点 OSI/RM七层模型 注意各层的主要功能,特别是表示层负责数据的加密、压…

Java修炼(线程池) 2024.7.26 16:38

目录 引入什么是线程池&#xff1f;工作原理线程池的类型线程池的优势使用线程池的基本步骤示例代码真实应用场景 引入 线程池是并发编程中的一个重要概念&#xff0c;广泛应用于 Java 和其他编程语言中。下面我将全面地复习线程池的概念、工作原理、类型、优势以及在 Java 中…

AI 正在取代工作岗位、ChatBot 进入厌倦期、向量数据库崛起,人工智能现状报告有这些重要发现!...

作者 | Echo Tang&GPT 出品丨AI 科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09; 百度的无人驾驶“萝卜快跑”已经在武汉大面积推广&#xff0c;在部分城市进行小量的试运行&#xff0c;以低廉的价格直接卷翻滴滴、出租车司机&#xff0c;让人们热议“五年、十…

git报错403,git项目拉取不下来

解决办法&#xff0c;清除以下配置 https://blog.csdn.net/weixin_55047679/article/details/131763419 清除后再次拉取代码时&#xff0c;重新输入云效平台https用户账号及密码

Linux 使用技巧及示例

1. 快速切换目录 技巧: 使用别名来快速切换到常用的目录。示例:# 添加到 ~/.bashrc 文件 echo alias myproject"cd /home/user/Projects/my_project" >> ~/.bashrc source ~/.bashrc # 重新加载配置文件使其生效2. 管道和重定向 技巧: 使用管道 (|) 和重定向…

7月23日JavaSE学习笔记

异常&#xff1a; 程序中一些程序处理不了的特殊情况 异常类 Exception 继承自 Throwable 类&#xff08;可抛出的&#xff09; Throwable继承树 Error&#xff1a;错误/事故&#xff0c;Java程序无法处理&#xff0c;如 OOM内存溢出错误、内存泄漏...会导出程序崩溃 常见的…

Spring 微服务提示:使用环境变量抽象数据库主机名

安全地管理任何微服务的数据库连接字符串都至关重要;通常&#xff0c;我们使用环境变量来保护用户名和密码&#xff0c;并且从不考虑屏蔽或隐藏数据库主机名。在读取器和写入器数据库实例中&#xff0c;某些组织会强制要求在应用程序启动期间不要泄露主机名并通过环境变量传递主…

sklearn详细基础教程(科普篇)

Scikit-learn&#xff08;简称sklearn&#xff09;是Python中一个强大且易于使用的机器学习库&#xff0c;它基于NumPy、SciPy和matplotlib等Python库构建&#xff0c;提供了丰富的工具集&#xff0c;包括数据预处理、特征选择、模型训练、评估和预测等功能。以下是sklearn的详…

研0 冲刺算法竞赛 day22 P1928 外星密码

P1928 外星密码 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路&#xff1a;递归处理&#xff0c;分类处理 代码&#xff1a; #include<iostream> #include<stack> using namespace std; #include <cstring> char copl[20005];string handle() {int …

使用Java和Spring AMQP构建消息驱动应用

使用Java和Spring AMQP构建消息驱动应用 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 消息驱动应用程序在现代系统架构中扮演着重要角色&#xff0c;特别是在处理高并发和异步任务时。Spring AMQ…

【笔记-软考】层次式架构-表现层框架设计

Author&#xff1a;赵志乾 Date&#xff1a;2024-07-27 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 1. 设计模式 表现层设计模式主要包括MVC、MVP、MVVM三种&#xff0c;用来分离显示部分和业务处理部分&#xff08;显示部分发生变化的概…

LeetCode209 长度最小的子数组

前言 题目&#xff1a; 209.长度最小的子数组 文档&#xff1a; 代码随想录——长度最小的子数组 编程语言&#xff1a; C 解题状态&#xff1a; 没有思路&#xff0c;暴力解法都没思路… 思路 注意&#xff0c;子数组指的是连续子数组&#xff0c;不然本题就没有意义了。 代…

全网最详细!! Linux 安装、配置教程

一、下载安装包 首先去官网下载VMware最新版本&#xff0c;以及发行版CentOS -7&#xff0c;懒得下载的可以私信我&#xff0c;我给你发包 其中&#xff0c;CentOS&#xff08;Community Enterprise Operating System&#xff09;是一个基于Linux的开源操作系统&#xff0c;它是…

【日常记录-Docker】容器退出机制

Author&#xff1a;赵志乾 Date&#xff1a;2024-07-25 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 1. 简介 Docker容器退出机制是指容器停止运行并退出的一系列行为与规则&#xff0c;其决定了容器何时以及如何停止运行。了解并掌握容器…

华为OD机试 - 停车场车辆统计 - 贪心算法(Java 2024 D卷 200分)

华为OD机试 2024D卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;D卷C卷A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华…