从编年史角度看大数据兴起

news2024/11/27 8:22:42

开源大数据编年史

    • 大数据发展的各阶段
    • 大数据诞生初期
    • 大数据百花齐放的发展之路
    • 追求性能的大数据成熟期

大数据发展的各阶段

开源大数据的编年史的话,实际上分为三个阶段。一般来说它分为初期、发展期、成熟期。

初期就是大数据刚开始萌芽的一个阶段,它从谷歌的三篇论文开始诞生,并慢慢的成长起来。

大数据编年史1

在发展期,就是百花齐放。各个场景的一些组件开始丰富起来,大数据生态圈开始扩充。

大数据编年史2

从2014年之后,属于成熟期,就是大数据产品开始向着追求更高的性能,追求更好的易用性。开始向这样的一个方面进行靠拢。

大数据诞生初期

首先的话是02年这个时间点,有两个技术大神,Doug Cutting、Make Cafarella。他们创建了一个开源的爬虫项目叫Nutch。那爬虫项目大家知道,它是源源不断的在爬取数据的,爬取回来的数据,发现数据量太大,没地方存储了。存在单机节点一定是有存储上限的。

于是他们就开始寻找,这种能存储海量数据的技术解决方案。恰好第二年,谷歌发表了Google File System这篇论文,现在的话我们一般简称为GFS。它就是用来解决海量数据存储这样一个问题的。

于是他俩就在04年的时候,在Nutch这个爬虫中把GFS的功能就给实现了。这样的话海量数据就可以进行存储了,GFS它就是现在HDFS的前身。

它的一个数据存储方案,就是分布式多节点去存储。把一个文件拆分成好多份,大概每一份是128M(当时是64M)。拆分成很多份之后,再把这些拆出来的数据块均匀的放到各个服务器节点里面进行一个存储。

数据存起来之后,接下来要做什么?数据存起来肯定要做计算。

于是04年10月份,谷歌又发表了一篇论文叫MapReduce。这个论文就是用来解决海量数据的一个计算问题。

它用到的思想就是我们前面讲到的移动计算而非移动数据。你数据不要动,我的计算任务移动过去。

所以你看它命名上来说,MapReduce由两个单词组成。Map就是我把计算任务分发到各数据节点,每个数据节点进行计算后得到一个部分结果,这叫Map。

得到部分结果之后,这些部分结果肯定要进行一个汇总,汇总成最终的结果。而Reduce就是用来进行部分结果汇总的,得到最终结果之后,将最终结果做一个输出。

MapReduce这篇论文发表之后,在05年,也就是第二年。两个人又在Nutch中把MapReduce的功能也实现了。

到此为止,实际上大数据的雏形基本上就有了。因为我们想一下,对数据的一个存储包括计算都满足了。

就已经麻雀虽小五脏俱全了,接下来就要让它接受生产上的考验了。

于是06年两个创始人之一,Doug Cutting加入雅虎。你看雅虎开始把它发展成了一个可以在网络上运行的系统,这个系统它改名为Hadoop。

这个时候Hadoop就包含了两个组件,一个是我们前面GFS的实现叫HDFS,另外一个就是做计算的MapReduce。Hadoop就发展成了一个可以在网络上运行的系统。

2月份的时候大家看到,Apache的Hadoop项目就正式启动了。Apache是一个基金会,它孵化了很多的一些开源项目,06年2月份的时候Hadoop这样一个项目就推到了Apache进行了一个孵化。

它在孵化的时候,支持MapReduce和HDFS独立发展。

在06年之后,你发现雅虎慢慢的开始使用Hadoop,在这个生产上去进行试用。雅虎的网格计算团队采用Hadoop技术,建立了第一个用于开发的Hadoop集群。

当然的话中间有个时间是Apache第一个Hadoop版本发布。

06年11月份的时候,又有一个重要的时间点出现了,谷歌发表了BigTable论文。

谷歌之前发布了两篇论文,完全推动了开源大数据这一块的一个诞生。然后06年10月份又发表了一篇论文,叫BigTable,这个时候也就意味着谷歌的三驾马车(GFS、MapReduce、BigTable论文)全部推出来了。

Big Table是一个NoSQL数据库(开源实现是HBase),因为我们之前的数据是存在HDFS里面。

HDFS是个文件系统,文件系统一般对我们生产来说不好用。我们生产上没有见过说直接把数据存到文件系统里面,然后让我们程序去调用的。

我们生产一般是把数据存在数据库,虽然说这个数据库也是建立在文件系统之上,但它更加易用。

Bigtable也是这样的NoSQL数据库,基于HDFS这个文件系统搭建的。但是它是一个数据库,数据存进来之后可以对数据进行很快速的一些增删改查,这个是它更擅长的,而且它的并发读性能也很好。对生产上来说更易用一些。

于是谷歌发表了Big table论文之后,谷歌三驾马车全部推出来对大数据这一块起到了极大的推动作用。

大数据百花齐放的发展之路

接下来07年之后是大数据的发展期,你发现雅虎开始大规模的商用。开始的时候只是试水,但是07年之后大规模的在生产中推广与使用。Hadoop发展成了两个1000节点的集群,运行了世界上最大的Hadoop应用,把它的搜索引擎部署在了拥有1万个内核的Hadoop集群上。

雅虎敢这么用,意味着Hadoop已经在生产上经过锤炼,而且已经比较成熟了。

中间08年的时候,Hadoop成为Apache的顶级项目。之前它们是独立发展的,现在的话它们收到Hadoop这样一个顶级项目下,然后Hadoop里面有两个子项目一个HDFS,一个MapReduce。

之后的时间线,大数据产品开始百花齐放。Hive诞生、Pig诞生、HBase出现、Zookeeper、Yarn这些产品开始遍地开花。基于Hadoop产品,它的生态开始逐渐的扩展起来。

而且的话中间有一个重要的时间线,是什么呢?

08年8月份的时候,第一个Hadoop的商业化公司Cloudera成立了,目前是非常老牌的大数据公司。08年成立之后,在09年3月份,它就推出了世界上首个Hadoop发行版CDH,并完全开放源码。现在很多同学学习用的就是CDH这个版本。

商业化公司产生意味着,大数据被资本这一块所认可。意味着大数据是很有前景的。

这是整个一个发展期,百花齐放的过程中,商业化公司成立。

追求性能的大数据成熟期

大数据的成熟期在14年之后,它的一个标志时间是14年2月份Spark的诞生。Spark代替MapReduce成为Hadoop的缺省计算引擎。

什么叫缺省计算引擎?

Hadoop里面做计算的是MapReduce,但是MapReduce有一个问题在于计算效率低。

MapReduce是05年实现的,05年那个时候硬件成本还很高,内存其实很昂贵。于是mapreduce实现的一个想法在于尽量去节约内存,节省内存也就意味着,它会大量与磁盘进行交互。所以它实际上性能并不高。

时间一晃来到2014年,这个时候,硬件成本已经很廉价了。所以没必要再煞费苦心的去节省内存了,会导致效率降低。

于是spark这样的一个框架诞生的目的就是说,时代变了,已经不需要那样去节省内存。在计算时可以把所有数据全部加载到内存中进行计算。如果内存放不下,它才会把最早的数据溢写磁盘进行保存。

在内存里面进行计算,它的效率是非常高的。在Spark官网首页,你可以看到,Spark声称它的效率要比Hadoop快100倍。虽然说有点夸张,但是也侧面体现出它的效率确实是ok的。

于是在14年Spark诞生之后,Spark就可以成为Hadoop的一个缺省计算引擎。就是你可以选MapReduce也可以选Spark做大数据计算。

而且目前公司选型的话,一般选Spark是最多的。因为它效率很高,并且包含了很多易用的场景框架。

这是spark的一个诞生。而且在spark诞生之后,大数据产品开始追求效率,追求速度,追求易用性。

然后15年的时候,诞生了一个基于Hadoop的原生存储替代方案Kudu。Kudu也是把数据先加载到内存,热数据存储在内存中,这样会导致查询包括处理的性能有进一步的提升。

之后诞生的大数据产品都越来越追求速度和易用,性能也越来越出色。

这是整个大数据的一个编年史,这一节就和大家聊到这里,我们下期再会!配套视频可在B站观看,传送门:从编年史角度看大数据兴起

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

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

相关文章

java 8 中的实用技巧

1 判断2个对象是否相等Objects.equals(a, b)(1) 比较时, 若a 和 b 都是null, 则返回 true, 如果a 和 b 其中一个是null, 另一个不是null, 则返回false。注意:不会抛出空指针异常。(2) a 和 b 如果都是空值字符串:"", 则 a.equals(b…

深入浅出解析ChatGPT引领的科技浪潮【AI行研商业价值分析】

Rocky Ding写在前面 【AI行研&商业价值分析】栏目专注于分享AI行业中最新热点/风口的思考与判断。也欢迎大家提出宝贵的意见或优化ideas,一起交流学习💪 大家好,我是Rocky。 2022年底,ChatGPT横空出世,火爆全网&a…

CXL互联标准简介及相关资料

毕设是实现CXL的type3扩展内存设备,因为CXL技术非常新,2019年推出,本专栏也是记录CXL的相关知识与一些浅薄的理解 文章目录CXL出现的背景CXL是什么其他互联总线介绍CXL胜出的原因CXL内容简介包含三种协议 CXL.io/cache/memory支持三种设备类型…

SQL注入原理及漏洞利用(入门级)

文章目录一、什么是SQL注入漏洞?二、 SQL查询语句三、SQL注入分类数字型(整型)注入字符型注入搜索型注入四、SQL注入漏洞形成原因一、什么是SQL注入漏洞? 攻击者利用Web应用程序对用户输入验证上的疏忽,在输入的数据中…

基于Istio的高级流量管理二(Envoy流量劫持、Istio架构、高级流量管理)

文章目录一、Envoy流量劫持机制(Iptables规则流转)1、流量出向劫持流程(1)envoy怎样劫持入向流量?(2)Envoy劫持到流量之后,干什么?(查询目的地)&a…

tess4j简单使用入门

tess4j下载 下载地址: https://sourceforge.net/projects/tess4j/ 不要直接下载,点击files,然后下载最新版 下载解压后放到指定的目录即可,这里放到d:\jar目录下 tess4j根目录: d:\jar\tess4j tess4j使用 把test4j项目目录中dist和lib目录下的所有jar包导入到需要的项目中…

【云原生】k8s 离线部署讲解和实战操作

文章目录一、概述二、前期准备1)节点信息2)修改主机名和配置hosts3)配置ssh互信4)时间同步5)关闭防火墙6)关闭 swap7)禁用SELinux8)允许 iptables 检查桥接流量三、开始部署1&#x…

【OC】块初识

Block简介 Blocks是C语言的扩充功能。可以用一句话来表示Blocks的扩充功能:带有自动变量的匿名函数。 匿名函数 所谓匿名函数就是不带有名称的函数。C语言的标准不允许存在这样的函数。例: int func(int count);它声明了名称为func的函数。下面的源代…

STM32 ROS控制器底层代码讲解

本文主要对控制器底层代码的整天架构进行讲解。控制器由两部分组成一部分是BootLoader,另一部分是APP;BootLoader主要用于固件升级,APP则作为应用程序。BootLoader的地址为:0x8000000~0x8008000App的地址为:0x8010000~0x8FFFFFF参数保存地址为&#xff1…

基本密码技术

AESAES取代DES,是一种对称加密技术,分为AES-128/192/256, 其分组长度固定为128b,若最后一个分组长度不够,需要补全至128b长度。所支持的秘钥长度分别为128b/192b/256b.分组密码模式AES是对明文进行分组之后逐块进行加密&#xff0…

2023年软考高级网络规划设计师

网络规划设计师是软考高级考试科目之一,也是比较难的科目,据官方数据统计网规每年的通过率很低,而且每年只有下半年11月份考一次,如果是直接裸考,估计很悬哦~ 但是你参加考试获得证书的过程就是一个学习网络规划系统知…

【python学习笔记】:SQL常用脚本(一)

1、行转列的用法PIVOT CREATE table test (id int,name nvarchar(20),quarter int,number int) insert into test values(1,N苹果,1,1000) insert into test values(1,N苹果,2,2000) insert into test values(1,N苹果,3,4000) insert into test values(1,N苹果,4,5000) insert…

本周大新闻|索尼PS VR2立项近7年;传腾讯将引进Quest 2

本周大新闻,AR方面,传立讯精密开发苹果初代AR头显,第二代低成本版将交给富士康;iOS 16.4代码曝光新的“计算设备”;EM3推出AR眼镜Stellar Pro;努比亚将在MWC2023推首款AR眼镜。VR方面,传闻腾讯引…

编辑器、论坛、评论列表图文混排的一些思路

好久没写帖子了,今天写一个吧 众所众知从用户那里拿到的数据直接innerHtml插入 有被xss攻击的风险,所以一般会转义,拿csdn编辑文章的来举个例子 通过前端转义 ‘>’后,传给后台;这里title没有用innerHtml而是文本所以不需要转义。 前端请…

SerenityOS 操作系统类 Unix 操作系统

创建于2018年的SerenityOS是一个类似Unix的操作系统,但是带有图形化界面,适合X86台式计算机,,其界面类似90 年代的Win98/NT。几乎由一个人完成额操作系统。这几天其Web浏览器通过了 Acid3 浏览器。 Kernel features 具有抢占式多…

计算机网络笔记、面试八股(四)—— TCP连接

本章目录4. TCP连接4.1 TCP报文段的首部格式4.2 TCP连接如何保证可靠4.3 ARQ协议4.3.1 停止等待ARQ协议4.3.1.1 无差错情况4.3.1.2 出现差错情况4.3.1.3 确认丢失和确认迟到4.3.2 连续ARQ协议4.3.2.1 流水线传输4.3.2.2 累积确认4.3.2.3 滑动窗口协议4.3.3 停止等待ARQ和连续AR…

java面试题-JVM内存结构

整体结构:1.说说JVM内存整体的结构?线程私有还是共享的?JVM(Java Virtual Machine)内存可以分为以下几个部分:程序计数器(Program Counter Register):是线程私有的&#…

JUC并发编程(二)

一、过时方法 一些不推荐使用的方法已经过时,容易破坏同步代码块,使对象的锁得不到释放,进而造成线程死锁 二、守护线程 默认情况下,Java 进程需要等待所有线程都运行结束,才会结束。有一种特殊的线程叫做守护线程…

spring中BeanFactory 和ApplicationContext

在学习spring的高阶内容时,我们有必要先回顾一下spring回顾spring1.什么是springspring是轻量级的,指核心jar包时很小的;非侵入式的一站式框架(数据持久层,web层,核心aop),为了简化企业级开发。核心是IOC&a…

Python自动化测试实战篇(6)用PO分层模式及思想,优化unittest+ddt+yaml+request登录接口自动化测试

这些是之前的文章,里面有一些基础的知识点在前面由于前面已经有写过,所以这一篇就不再详细对之前的内容进行描述 Python自动化测试实战篇(1)读取xlsx中账户密码,unittest框架实现通过requests接口post登录网站请求&…