构建现代数据湖

现代数据湖是一半数据仓库和一半数据湖,对所有事情都使用对象存储。使用对象存储来构建数据仓库是通过 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:";…

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七层模型 注意各层的主要功能,特别是表示层负责数据的加密、压…

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

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

7月23日JavaSE学习笔记

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

研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 …

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

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

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

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

微服务注册中心

目录 1.微服务的注册中心 1.1 注册中⼼的主要作⽤ 1.2 常⻅的注册中⼼ 2.nacos简介 2.1 nacos实战⼊⻔ 2.2.1 搭建nacos环境 2.2.2 将商品微服务注册到nacos 3.服务调⽤Ribbon⼊⻔ 3.1 Ribbon概述 3.1.1 什么是Ribbon 3.1.2 Ribbon的主要作⽤ 3.2.2 ⼯程改造 4.服务…

多区域DNS以及主从DNS的搭建

搭建多域dns服务器&#xff1a; 搭建DNS多区域功能&#xff08;Multi-Zone DNS&#xff09;主要是为了满足复杂网络环境下的多样化需求&#xff0c;提高DNS服务的灵活性、可扩展性和可靠性。 适应不同网络环境&#xff1a; 在大型组织、跨国公司或跨地域服务中&#xff0c;网…

大模型学习笔记 - LLM指令微调

LLM 指令微调 LLM 指令微调 0. 概览1. 指令数据的构建 1.1 基于现有NLP任务数据集构建1.2 基于日常对话数据构建1.3 基于合成数据构建1.4 指令数据构建的提升方法 2. 指令微调的策略 2.1 优化设置2.2 数据组织策略 3. 参数高效的模型微调 3.1 低秩适配微调方法3.2 其他高效微调…

使用flutter做圆形进度条 (桌面端)

前言 最近收到一个需求&#xff0c;需要使用flutter 来做一个圆形进度条&#xff0c;这可难倒我了&#xff0c;毕竟我是做前端的&#xff0c;flutter 之前接触的也少&#xff0c;但没办法&#xff0c;既然需求有了&#xff0c;也得硬着头皮上了&#xff0c;先来看看做的效果。…

C语言-TCP通信创建流程

TCP通信创建流程 1. 客户端创建TCP连接 在整个流程中, 主要涉及以下⼏个接⼝socket() : 创建套接字, 使⽤的套接字类型为流式套接字connect() : 连接服务器send() : 数据发送recv() : 数据接收创建套接字 首先&#xff0c;我们需要创建套接字&#xff0c;套接字是通信的基础…

构建查询洞察 UI

本文字数&#xff1a;2631&#xff1b;估计阅读时间&#xff1a;7 分钟 作者&#xff1a;Bucky Schwarz 本文在公众号【ClickHouseInc】首发 我们最近发布了 Query Insights 的初步实现&#xff0c;为 ClickHouse Cloud 用户提供了一种便捷的方法来查看和解释查询日志。该功能对…

MySQL索引、事务(数据库管理与高可用)

一、索引的概念 索引&#xff1a;排序的列表&#xff0c;对数据进行快速的查询&#xff1b; 针对不同的产品需求&#xff0c;或者不同的数据库结构&#xff0c;会创建不同的索引&#xff1b; 1&#xff1a;普通索引&#xff08;默认索引&#xff09; 2&#xff1a;唯一索引…

推荐一个酷炫高逼格的服务器探针的监控工具,免费开源(附源码)

背景 作为一名攻城狮&#xff0c;面对各种服务器内存飙高、CPU猛增、磁盘打满等等服务器问题&#xff0c;可谓是伤透了我们的心。 不仅要开发&#xff0c;还要处理这些问题&#xff0c;大把的时间浪费了&#xff0c;这时候一个好的全面的监控工具尤为重要了。 所以&#xff…

C++基础知识:函数重载相关注意事项:1.引用作为重载条件,2.2.函数重载遇见函数默认参数。

1.引用作为重载条件 #include<iostream>using namespace std;//1.引用作为重载的条件 //int 和 const int 类型不同&#xff0c;所以可以作用重载条件 void fn(int &a) //int &a10;不合法 //10放在了常量区&#xff0c;而引用要么在栈区&#xff0c;要么在堆区{…

Unity打包设置

1.Resolution and Presentation (分辨率和显示) Fullscreen Window (全屏窗口): 应用程序将以全屏窗口模式运行&#xff0c;但不会独占屏幕。适用于想要全屏显示但仍需访问其他窗口的情况。 Resizable Window (可调整大小的窗口): 允许用户调整应用程序窗口的大小。适用于窗口…