The History of Big Data

數據洪流悄然重塑世界的進程中,大數據的歷史是技術迭代與需求驅動的交響。從 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;也…