大规模数据处理的技术的五个时代和四代引擎

  • 石器时代

随着互联网的蓬勃发展,数据量在呈指数型增长。早在2003年之前,各大厂商都已经严重面临大规模数据的处理难题,比如Google就已经面对大于600亿的搜索量。如何从海量的原始数据中挖掘出有效的信息,如何保证数据挖掘程序的容错性一直困扰着Google的工程师们。
这个时候大规模数据处理技术还处于仿徨阶段,每个公司甚至个人都有一套独立的数据处理工具,层次不齐,纷繁复杂,但是还没有提炼抽象出一个系统的办法。

  • 青铜时代

直到2003年,MapReduce问世,开启了数据处理的青铜时代(真正意义上的第一代大数据计算引擎)。Jeff Dean和Sanjay Ghemawat发表革命性的论文MapReduce:Simplified Data Processing on Large Clusters,从纷繁复杂的业务逻辑中抽象出Map和Reduce这样足够通用的编程模型。利用这个简单的编程模型编写分布式程序,跑在那些廉价的机器上。在随后的十年中,MapReduce在Google内部广泛使用,不断优化,投入了大量的人力物力将这套系统推向了前所未有的高度。

  • 铁器时代

MapReduce虽好,但是对于上层应用来说,在一些复杂的应用场景下,编写MapReduce程序会变得越来越复杂,工程师们想法设法的拆分算法,实现多个Job的串联,开发维护工作量大。这种弊端催生了DAG(有向无环图)框架的诞生,支持DAG的框架被划分为第二代计算引擎,如Tez以及Ooize,此时计算引擎处理的大多数都还是批处理任务。

  • 蒸汽机时代

时代的步伐并不会满足于计算引擎的一点点进步,计算时间太长的问题一直被诟病。直到基于分布式内存的Spark作为第三代计算引擎出现,才逐渐取代了MapReduce的龙头地位(2014年之后,国际各大互联网厂商几乎都没有人再直接写MapReduce程序了),并且逐步向流处理开始发力。第三代计算引擎的出现,促进了上层应用快速发展,如各种迭代计算以及流计算和SQL等。

  • 电气时代

随着时代的前行,上层应用越来越注重实时流处理技术,以及批流一体化的计算引擎框架。这时批流一体化的新贵Flink应运而生;同时Spark也在不断弥补自己在实时流处理上的短板,增加新特性;而Google也在不断发力,推出Apache Beam。师夷长技以制夷,各大计算引擎相互参考,不断优化着自己的短板,推出新的特性,争当第四代计算引擎扛旗手。

如果重登历史的巨轮,一路走马观花般地来看看大数据处理计算引擎的每一个转折点,我们不难发现每一次的升级都是在业务和技术开发的双重推动下稳步前行,每一次升级都是对数据模型抽象能力的提升。

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

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

相关文章

react组件编写最佳实践

react组件编写最佳实践 作为 React.js 开发的新手,理解基本原则并坚持实用性对于更好地快速开发至关重要。无论我们是在处理简单的任务(例如构建初学者待办事项应用程序)还是更复杂的项目(例如建立电子商务平台)&…

【Java】-【tomcat部署项目】

Tomcat 的目录结构 bin:Tomcat 的启动、关闭脚本。 conf:Tomcat 配置文件。 lib:Tomcat 需要的类库(jar 包)。 logs:日志目录。 temp:Tomcat 运行时产生的临时文件。 webapps:存放 …

相机取图后将数据转换成对应的图像处理库图像文件

相机取图后将数据转换成对应的图像处理库图像文件 前言提要一、大华相机1.to HImage 总结 前言 不同相机取完图像后的图像数据包里包含的数据并不一定是相同的,而且相机取图后的图像数据第三方的视觉库(Halcon,visionpro等)也并不…

React diff 根据相对位置的 diff 算法

文章目录 diff 算法没有 key 时的diff通过 key 的 diff查找需要移动的节点移动节点添加新元素移除不存在的元素缺点 diff 算法 没有 key 时的diff 根据新旧列表的长度进行 diff 公共长度相同的部分直接patch新列表长度>旧列表长度则添加,否则删除 function pa…

Vue3_02 创建Vue3.0工程

1.使用 vue-cli 创建 ## 查看 vue/cli 版本,确保 vue/cli 版本在4.5.0以上 vue -V 或 vue --version## 安装或升级你的 vue/cli npm install -g vue/cli## 创建 vue create vue_test## 启动 cd vue-test npm run serve 2.使用 vite 创建 什么是vite?——新一代…

31.SpringMVC

SpringMVC MVC MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体类Bean:专门存储业务数据的…

RxJava 倒计时,轮询器

笔记 倒计时 /*** 短信倒计时** param s*/private Subscription subscription30;public void startCountdownFinishRx30(int s) {clearFinishSubscription30();subscription30 Observable.interval(0, 1, TimeUnit.SECONDS).take(s 1).map(new Func1<Long, Long>() {O…

Java设计模式---工厂方法(Factory Method)模式

说明 工厂方法&#xff08;Factory Method&#xff09;模式是一种工厂模式&#xff0c;也叫多态性工厂&#xff08;Poloymorphic Factory&#xff09;模式。 工厂方法模式涉及如下角色&#xff1a; 抽象工厂角色&#xff1a;给出具体工厂角色必须实现的接口。具体工厂角色&a…

图像 检测 - DETR: End-to-End Object Detection with Transformers (arXiv 2020)

图像 检测 - DETR: End-to-End Object Detection with Transformers - 端到端目标检测的Transformers&#xff08;arXiv 2020&#xff09; 摘要1. 引言2. 相关工作2.1 集预测2.2 Transformers和并行解码2.3 目标检测 3. DETR模型References 声明&#xff1a;此翻译仅为个人学习…

深度学习,计算机视觉任务

目录 计算机视觉任务 1.K近邻算法 2.得分函数 3.损失函数的作用 4.向前传播整体流程 5.反向传播计算方法 计算机视觉任务 机器学习的流程&#xff1a; 数据获取 特征工程 建立模型 评估与应用 计算机视觉&#xff1a; 图像表示&#xff1a;计算机眼中的图像&#…

万界星空科技/免费开源MES系统/免费仓库管理

仓库管理&#xff08;仓储管理&#xff09;&#xff0c;指对仓库及仓库内部的物资进行收发、结存等有效控制和管理&#xff0c;确保仓储货物的完好无损&#xff0c;保证生产经营活动的正常进行&#xff0c;在此基础上对货物进行分类记录&#xff0c;通过报表分析展示仓库状态、…

开源项目如何贡献代码

以腾讯犀牛鸟开源项目ncnn为例 目录 fork项目仓库 添加远程仓库 同步更新仓库 贡献代码提交新PR PR未merge更新PR fork项目仓库 只需要做一次 到仓库页面点击fork&#xff0c;然后create forkTencent/ncnn: ncnn is a high-performance neural network inference frame…

性能测试浅谈

早期的性能测试更关注后端服务的处理能力。 一个用户去访问一个页面的请求过程&#xff0c;如上图。 数据传输时间 当你从浏览器输入网址&#xff0c;敲下回车&#xff0c;开始... 真实的用户场景请不要忽视数据传输时间&#xff0c;想想你给远方的朋友写信&#xff0c;信件…

龙架构 Arch Linux 发行版发布

导读近日&#xff0c;龙架构 Arch Linux 发行版官方网站宣布结束 beta 状态&#xff0c;正式支持龙架构 (LoongArch)。 Arch Linux 是一种轻量级、可定制、灵活的 Linux 操作系统。作为一款简单、现代、开放的操作系统&#xff0c;Arch Linux 旨在基于 “KISS 原则”&#xff0…

WorkTool企微机器人自动接收图片回传(方案三)

自动接收图片并上传到服务器&#xff0c;仅适用企业微信应用 前言 WorkTool企微机器人可以接收客户群的消息&#xff0c;但接收图片一直是个问题&#xff0c;前面也介绍过两种图片接收方案&#xff0c;但都会影响运行效率&#xff0c;并且不能达到100%的图片接收率&#xff0…

小研究 - Mysql快速全同步复制技术的设计和应用(一)

Mysql半同步复制技术在高性能的数据管理中被广泛采用&#xff0c;但它在可靠性方面却存在不足.本文对半同步复制技术进行优化&#xff0c;提出了一种快速全同步复制技术&#xff0c;通过对半同步数据复制过程中的事务流程设置、线程资源合理应用、批量日志应用等技术手段&#…

基于STM32设计的智能婴儿床控制系统

一、设计需求 基于STM32设计的智能婴儿床控制系统 1.1 设计需求总结 随着科技时代的到来,微电子技术发展迅猛,给智能化的生活带来了极大的便携,人们生活水平有了显著的提高。现代家庭也越来越注重孩子在婴儿时期的成长发育,但照看婴儿需要投入很多的精力和时间,以至于无暇…

[LitCTF 2023]Http pro max plus

打开环境后提示说&#xff0c;只允许在本地访问&#xff0c;本地访问&#xff0c;还是想到了XFF字段 好家伙的&#xff0c;直接被嘲讽&#xff0c;还是了解太少了&#xff0c;都不知道还有没有其他方式可以控制ip地址信息 经过查看wp&#xff0c;得知一种新的方式 Client-IP …

hive锁的管理器的介绍

各个管理器的使用&#xff1a; org.apache.hadoop.hive.gl.lockmgr.DbTxnManager 在 Hive 中被用于实现事务和锁的管理机制。它的使用场景通常涉及以下情况&#xff1a; ACID事务支持&#xff1a;当需要在 Hive 中进行复杂的数据操作&#xff0c;并确保这些操作以原子性、一致…

【FIFO IP系列】FIFO IP参数配置与使用示例

Vivado IP核提供了强大的FIFO生成器&#xff0c;可以通过图形化配置快速生成FIFO IP核。 本文将详细介绍如何在Vivado中配置一个FIFO IP核,以及如何调用这个FIFO IP核。 一、FIFO IP核的配置 1、新建FIFO IP 在Vivado的IP Catalog中找到FIFO Generator IP核&#xff0c;双击…