数据洪流悄然重塑世界的进程中,大数据的历史是技术迭代与需求驱动的交响。从 2003 年分布式系统雏形初现,到 Hadoop 掀起开源浪潮,再到 Spark、容器化技术与深度学习的接力革新,以及 Hadoop 生态的兴衰起落,大数据发展史如同一部技术进化史诗。本文将循着 2003 至 2023 年的时间脉络,解码这场数据革命的前世今生,窥探技术浪潮下的未来图景。

主要参考,翻译整理自这篇文章:

https://towardsdatascience.com/2003-2023-a-brief-history-of-big-data-25712351a6bc

2003–2006: The Beginning

图片

当时谷歌在爬取全世界网页时的两个主要问题:

  • How to store hundreds of terabytes of data, on thousands of disks, across more than a thousand machines, with no downtime, data loss, or even data unavailability ?

  • How to parallelize computation in an efficient and resilient way to handle all this data across all these machines ?

于是乎谷歌发表了改变 big data的三篇论文

  • The Google File System

  • MapReduce: Simplified Data Processing on Large Clusters

  • Bigtable: A Distributed Storage System for Structured Data

这里还有一篇文章,The Friendship That Made Google Huge
介绍了 Jeff Dean and Sanjay Ghemawat 的故事

那会 Doug Cutting 正在做跟谷歌类似的事情,分布式爬虫,需要计算和存储

  • Apache Lucene

  • Apache Solr、 ElasticSearch 使用了前者

于是创建了 Apache Nutch,同时参考了谷歌的论文,创建了 Hadoop,包括

  • HDFS 文件系统

  • MapReduce

谷歌仍然是保持封闭,最初开源的贡献者是 Yahoo,随后很多公司都跟进了

2007–2008: Hadoop’s early adopters and contributors

图片

MapReduce 很强大,但是写起来并不容易,于是 Yahoo 就推出了 Apache Pig
将高层语言解析为 map-reduce

这段时间还有几个重量级开源项目

  • facebook 推出了 Apache Hive

  • 还是facebook 的 Apache Cassandra

  • Powerset 推出了 Apache HBase,后被微软收购并开启了新项目 Bing

  • AWS 推出了 Elastic MapReduce,可以免运维的方式开发 MapReduce

2008–2012: Rise of the Hadoop vendors

图片

Hadoop集群大了之后就很难安装、维护,于是出现了很多供应商

  • Cloudera,以及他们的 CDH

  • Hortonworks

  • MapR

Cassandra 也找到了供应商 Datastax

在这段时间,人们发现 Hive挺好用的,但是Hive太慢了
而谷歌又发表了后三驾马车的论文

  • Dremel: Interactive Analysis of Web-Scale Datasets

  • Pregel,这个是图数据库

  • Caffeine,网络搜索引擎

Dremel的两个创新

  • 如何在海量数据中快速查询

  • 新的存储格式

三大 Hadoop 供应商基于 Dremel 的启发,又发布了各自的产品

  • Cloudera 推出了 Apache Impala

  • MapR 推出了 Apache Drill

  • Hortonworks 推出了 Apache Tez

Tez 是对MapReduce 的改良,上层的 Hive还是不动
这种方案的原因是 Hortonworks 本身人力不够,因为他们的客户都是基于Hive的,想提升Hive速度而不是迁移到另一个引擎

收到 Dremel 文件格式的启发

  • Cloudera and Twitter 联合推出了 Apache Parquet

  • Hortonworks and Facebook 联合推出了 Apache ORC

2010–2014 : Hadoop 2.0 and the Spark revolution

图片

新的 Hadoop 调度框架 Yarn 出现之后就是 Spark 的崛起,对整个行业有巨大的推动基于Sarpk 创建了Databricks,他们是基于云的,而不是搞发型版本

之后也证明了 Databricks 的选择是正确的这段时间也出现了几个实时处理的项目

  • LinkedIn 推出的 Apache Kafka

  • Twitter 推出的 Apache Storm

而 Netflix 的成功也证明了云计算的强大之后 微软 Azue在 2010年入局,谷歌 在2011年入局

2014–2016 Reaching the Apex

图片

出现了几个试图统一底层流批的框架
目前还活跃的是 Apache Beam,谷歌搞的
目前是将底层的 Apache Spark, Apache Flink or Google’s DataFlow 做统一

然后就是调度系统,这个其实也挺复杂的,几个开源产品

  • Yahoo!’s Apache Oozie

  • Linkedin’s Azkaban

  • Airbnb 的 Apache Airflow

  • Spotify 的 Luigi

Apache Airflow 还推出了 谷歌云、AWS 的产品

SQL 层面,还有 Presto

  • Amazon 的 Athena 基于它重塑了品牌

  • Presto 创始团队新搞的 Trino

还有几个基于 云的产品

  • Google 的 BigQuery 2011

  • Amazon’s Redshift 2012

  • Snowflake, founded in 2012

The Hadoop Ecosystem Table

2016–2020 The rise of containerisation and deep learning, and the downfall of Hadoop

图片

这段时间的几个大趋势

  1. HDFS替换,迁移到云环境,Amazon S3, Google Storage or Azure Blob Storage

  2. Docker,K8S 容器化出现,Hadoop 在 3.0才支持Docker

  3. 全托管的海量并行SQL数据仓库,也叫做:Modern Data Stack

  4. 深度学习的出现

深度学习需要 GPU,以及 Tensorflow or Keras的多个版本同时运行
这些Hadoop都么有,当时只能用VM 启动多个GPU 跑任务 
于是 Cloudera 在2017年 IPO 之后就基于容器化推出了他们的 Data Science Workbench

Hadoop 供应商的大事件

  • 2018年 Cloudera 跟 Hortonworks 合并,前者保留品牌

  • MapR 被 Hewlett Packard Entreprise (HPE) 收购

  • CD&R 以低于发行价 收购了 Cloudera

但这些并不代表 Hadoop 死了,它还在运行
之后又出现一些开放表格的技术

  • Uber 2016年推出的 Apache Hudi

  • Netflix 2017年推出的 Apache Iceberg

  • Databricks 2019年推出的 Delta Lake

这三个项目其实都是为了解决一个问题,从Hadoop迁移到云后,HDFS的那些功能和性能都无法保证了
需要用新的方案来兼容云存储环境,实现事务

Apache Iceberg Reduced Our Amazon S3 Cost by 90%

2020–2023 The modern era

图片

Hadoop云化依然是大趋势,而且每年都在增加
当然企业内部还是有不少部署 私有化 Hadoop 的
新一代启动都是基于 Modern Data Stack 来开发他们的SQL 分析数据仓库产品
如:BigQuery, Databricks-SQL, Athena or Snowflake
目标是低代码、零代码

几个元数据管理产品

  • Apache Atlas, started by Hortonworks in 2015

  • Amundsen, open-source by Lyft in 2019

  • DataHub, open-sourced by Linkedin in 2020

新的调度框架

  • Prefect

  • Dagster

  • Flyte

开始调整 Airflow的地位

lakehouse 开始出现,结合了数据湖、数据仓库的优点
最初是 Databricks 提出的,这个平台也方便了数据科学、BI 用户共享数据
因此 数据治理、安全、知识分享也更简单

之后 Snowflake 跟进推出了 Snowpark
然后是 Azure Synapse
Google with BigLake

开源方面,Dremio provides a lakehouse architecture since 2017

Modern Data Stack: Which Place for Spark ?

2023 - Who can tell what the future will be like?

图片

对未来的一些猜想

  • 主要的数据平台玩家:Databricks, Snowflake, BigQuery, Azure Synapse 会继续发力,缩小彼此差距,增加更多的功能和连接更多的组件

  • 新项目会越来越少,主要不是缺乏 ideas,而是资金

  • 公司更多是缺乏熟练的劳动力,他们更愿意花钱迁移到新方案而不是优化,可能因为低效的数据管理,使的企业会寻找更好的方案,类似Hadoop的新周期又诞生

  • 云厂商 Google, Amazon, Microsoft才是真正的赢家,找到风向标然后拷贝整合到自己的环境中

往期推荐

  • OpenLDAP研究

  • PyTorch

  • 云环境中的日志收集和处理方案

  • BTrace

  • Data Ingestion: Architectural Patterns

  • Data engineering at Meta

  • The Life of a Read/Write Query for Apache Iceberg Tables

  • Compaction in Apache Iceberg

  • Spark原理-解析过程和Catalog

  • Janino简单使用

  • Oracle的CDC工具OpenLogReplicator编译

  • OpenLogReplicator的一些改动

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

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

相关文章

【JS逆向基础】数据分析之正则表达式

前言:前面介绍了关于JS逆向所需的基本知识,比如前端三件套等,从这里开始就要进入到数据分析的范围内了,当然对于一些小白而言一些基本的知识还是需要知道的,比如正则,XPATNY与BS4;三个内容用三篇…

Mac mini 高性价比扩容 + Crossover 游戏实测 全流程手册

Mac mini 高性价比扩容 Crossover 游戏实测 全流程手册 本文将图文并茂地指导你如何: 为 M4 Mac mini 外置扩容(绿联 USB4 硬盘盒 致态 TiPlus7100)安装并配置 Crossover/Whisky 运行 Windows 应用实测游戏运行性能、诊断常见异常一、准备工…

【PyTorch】PyTorch中torch.nn模块的卷积层

PyTorch深度学习总结 第七章 PyTorch中torch.nn模块的卷积层 文章目录PyTorch深度学习总结前言一、torch.nn模块1. 模块的基本组成部分1.1 层(Layers)1.2 损失函数(Loss Functions)1.3 激活函数(Activation Functions…

Rust简洁控制流:if let与let else高效编程指南

文章目录Rust简洁控制流:if let与let else高效编程指南🎯 if let:专注单一匹配场景💡 if let核心优势:🔄 if let与else搭配使用🚀 let else:错误处理与提前返回💎 let el…

upload-labs靶场通关详解:第19关 条件竞争(二)

一、分析源代码//index.php // 初始化变量:标记上传状态和错误消息 $is_upload false; $msg null;// 检查是否通过POST方式提交了表单 if (isset($_POST[submit])) {// 引入自定义上传类require_once("./myupload.php");// 生成基于时间戳的文件名&…

一天两道力扣(3)

解法一:class Solution(object):def invertTree(self, root):if not root:return Noneroot.left, root.right root.right, root.leftself.invertTree(root.right)self.invertTree(root.left)return root解析:递归解法二:class Solution(obje…

jenkins2025安装、插件、邮箱发送使用

Tips:卸载从新安装(需要在C盘线先删除.jenkins文件),然后换个默认浏览器从新安装推荐的插件(不然安装插件这一步会报错,连接不到jenkins) 一、jenkins安装 访问jenkins官网:https://www.jenkins.io/download/ 双击war包开始下载…

vue中通过tabs 切换 时 显示不同的echarts 特殊处理

需要进行特殊处理 比如强制 进行resize 的方法 不然 大小显示会出现问题我先把全部的代码弄上<script setup lang"ts"> import { ref, onMounted, onBeforeUnmount, nextTick } from vue import { useRoute } from vue-router import { message } from ant-des…

浅度解读-(未完成版)浅层神经网络-深层神经网络

文章目录浅层神经网络的前向传播计算流程矩阵在运算时形状的变化激活函数的作用为什么要有激活函数反向传播深层神经网络参数超参数参数初始化初始化权重的值选择浅层神经网络的前向传播 计算流程 #mermaid-svg-tMPs4IUCtqxvhJ24 {font-family:"trebuchet ms",verda…

【vben3源码解读】【useEcharts】【VueUse】详解useEcharts这个hooks的作用与相关库的使用(VueUse)

源代码 import type { EChartsOption } from echarts;import type { Ref } from vue;import type { Nullable } from vben/types;import type EchartsUI from ./echarts-ui.vue;import { computed, nextTick, watch } from vue;import { usePreferences } from vben/preference…

报错 400 和405解决方案

今天出了好多这个错误&#xff0c;Uncaught (in promise) AxiosError {message: Request failed with status code 400 , name: AxiosError , code: ERR_BAD_REQUEST , config: {…}, request: XMLHttpRequest, …}反正就是前后端的参数不匹配&#xff0c;要不就是请求方式不…

Java源码的前端编译

Java源码的前端编译 欢迎来到我的博客&#xff1a;TWind的博客 我的CSDN:&#xff1a;Thanwind-CSDN博客 我的掘金&#xff1a;Thanwinde 的个人主页 0.前言 当一份Java代码写好时&#xff0c;将其进行编译&#xff0c;运行&#xff0c;并不是简单把这个Java源码从头到尾执行…

JWT6报错误 kid empty unable to lookup correct key

JWT5和jwt6在加密和解密和时候还明些区别的 &#xff0c;在5中&#xff0c;是不需要这个kid的&#xff0c;加解都不需要。但6中是需要这个keyId。 所以在使用的时候要做个区别&#xff0c;参考下面链接&#xff1a; ThinkPhp5.0.24 JWT报错 ‘“kid“ empty, unable to lookup…

高效学习之一篇搞定分布式管理系统Git !

一、Git是什么1&#xff0e;Git是目前世界上最先进的分布式版本管理系统 2&#xff0e;工作原理/流程workspace&#xff1a;工作区 Index/Stage&#xff1a;暂存区 Repository&#xff1a;仓库区&#xff08;本地仓库&#xff09; Remote&#xff1a;远程仓库二、SVN和Git的最主…

AdsPower API 新增查询环境 Cookies 接口,自动化更进一步!

你是不是有过这样的经历&#xff1f;账号在 AdsPower 环境中已经成功登录&#xff0c;但你还要花时间手动导出 Cookies、再整理处理&#xff0c;过程繁琐、效率低下。 现在&#xff0c;我们上线了 API 查询环境 Cookies 的接口&#xff0c;支持通过 API 直接获取已登录环境的 …

Craftium游戏引擎中的客户端同步机制解析

Craftium游戏引擎中的客户端同步机制解析 craftium A framework for creating rich, 3D, Minecraft-like single and multi-agent environments for AI research based on Minetest 项目地址: https://gitcode.com/gh_mirrors/cr/craftium 游戏状态同步的核心问题 在分…

spring cloud负载均衡之FeignBlockingLoadBalancerClient、BlockingLoadBalancerClient

本文主要分析被 FeignClient 注解的接口类请求过程中负载均衡逻辑&#xff0c;流程分析使用的源码版本信息如下&#xff1a;<spring-boot.version>3.2.1</spring-boot.version><spring-cloud.version>2023.0.0</spring-cloud.version>背景 平常我们代码…

提示工程(Prompt Engineering)研究进展

提示工程(Prompt Engineering)研究进展 以及它如何帮助大语言模型(LLMs)和视觉语言模型(VLMs)更好地工作。用简单的话说,就是通过设计巧妙的“提示”(比如指令、例子),让模型在不修改内部参数的情况下,更精准地完成各种任务,比如回答问题、推理、生成内容等。 文档…

【ARM】AI开发板A7处理器JTAG实现指南

一、文档背景尽管开发板原厂提供了相关文档&#xff0c;但可能缺乏对 A7 处理器 JTAG 功能的详细说明。这可能会导致以下问题&#xff1a;开发人员难以理解和利用 A7 处理器的基本功能&#xff0c;阻碍调试和开发进度。在进行Uboot移植过程中&#xff0c;无法应用图形界面的调试…

FPGA(一)Quartus II 13.1及modelsim与modelsim-altera安装教程及可能遇到的相关问题

零.前言 在学习FPGA课程时&#xff0c;感觉学校机房电脑用起来不是很方便&#xff0c;想着在自己电脑上下载一个Quartus II 来进行 基于 vhdl 语言的FPGA开发。原以为是一件很简单的事情&#xff0c;没想到搜了全网文章发现几乎没有一个完整且详细的流程教学安装&#xff08;也…