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

news/2024/4/23 21:21:47/文章来源:https://blog.csdn.net/qq_33876553/article/details/129227481

开源大数据编年史

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

大数据发展的各阶段

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

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

大数据编年史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.luyixian.cn/news_show_74436.aspx

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

相关文章

selenium模块(自动化)

文章目录一、环境配置二、使用selenium解析源码三、基本函数四、子页面(ifFrame)(动作链,拖拽)五、实现无可视化界面,规避被检测的风险(反反爬)六、等待七、异常处理Selenium是自动化…

kafka使用入门案例与踩坑记录

每次用到kafka时都会出现各种奇怪的问题,综合实践,下面汇总下主要操作步骤: Docker镜像形式启动 zookeeper启动 docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeperkafka启动 docker run --name kafka01 -p 9092:909…

YOLOV5s+Shufflenetv2+VOC数据集+迁移学习

前言:更改YOLOV5的backbone网络为 Shufflenetv2,便于达到轻量化的目的 1. 试运行YOLOv5 b站推土机 2. VOC数据集处理 3. 更改轻量级网络 参考魔改yolov5 3.1 在common.py末尾加入以下代码 #添加轻量化模块Shufflenetv2 # ------------------------…

安装配置DHCP

本次实验采用CentOS71.检查在安装DHCP之前先使用rpm命令查看系统中已有的DHCP软件包rpm -qa | grep dhcp由此可知,系统中尚未安装DHCP软件包2.安装我们可以使用yum命令为系统安装DHCP软件包yum -y install dhcp安装完成后再次检查可以看到DHCP软件包3.配置dhcp配置文…

办公室人员离岗识别检测系统 yolov7

办公室人员离岗识别检测系统根据yolov7网络模型深度学习技术,办公室人员离岗识别检测算法能够7*24小时全天候自动识别人员是否在岗位。YOLOv7 在 5 FPS 到 160 FPS 范围内,速度和精度都超过了所有已知的目标检测器,并在V100 上,30…

刷题28-有效的变位词

32-有效的变位词 解题思路: 注意变位词的条件,当两个字符串完全相等或者长度不等时,就不是变位词。 把字符串中的字符映射成整型数组,统计每个字符出现的次数 注意数组怎么初始化: int [] s1new int[26]代码如下&a…

Docker buildx 的跨平台编译

docker buildx 默认的 docker build 命令无法完成跨平台构建任务,我们需要为 docker 命令行安装 buildx 插件扩展其功能。buildx 能够使用由 Moby BuildKit 提供的构建镜像额外特性,它能够创建多个 builder 实例,在多个节点并行地执行构建任…

社畜大学生的Python之pandas学习笔记,保姆入门级教学

接上期,上篇介绍了 NumPy,本篇介绍 pandas。 目录 pandas 入门pandas 的数据结构介绍基本功能汇总和计算描述统计处理缺失数据层次化索引 pandas 入门 Pandas 是基于 Numpy 构建的,让以 NumPy 为中心的应用变的更加简单。 Pandas是基于Numpy…

NLP中的对话机器人——预训练基准模型

引言 本文是七月在线《NLP中的对话机器人》的视频笔记,主要介绍FAQ问答型聊天机器人的实现。 场景二 上篇文章中我们解决了给定一个问题和一些回答,从中找到最佳回答的任务。 在场景二中,我们来实现: 给定新问题,从…

基础夯实,字节内部总结240道算法LeetCode刷题笔记,直呼太全

1、什么是算法算法(algorithm,[ˈlɡərɪəm],计算程序):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结…

java spring AOP 完全注解开发

我们先创建一个项目 然后引入java spring aop的依赖 然后 在src下创建目录 我这里 直接就叫 Aop了 下面创建一个User类 参考代码如下 package Aop;import org.springframework.stereotype.Component;Component public class User {public void add(){System.out.println(&qu…

Redis高级-主从复制相关操作

2.1 主从复制简介 2.1.1 高可用 首先我们要理解互联网应用因为其独有的特性我们演化出的三高架构 高并发 应用要提供某一业务要能支持很多客户端同时访问的能力,我们称为并发,高并发意思就很明确了 高性能 性能带给我们最直观的感受就是:速…

Java EE|TCP/IP协议栈之应用层协议DNS详解

文章目录一、对DNS的感性认识简介特点一些常见疑问二、DNSDNS域名结构域名的分级三、域名服务器四、域名解析过程参考一、对DNS的感性认识 简介 DNS,即Domain Name System,是域名系统的简称。它是Internet上解决网上机器命名的一种系统。 TCP/IP中的IP地址是由四…

【蓝桥集训】第七天并查集

作者:指针不指南吗 专栏:Acwing 蓝桥集训每日一题 🐾或许会很慢,但是不可以停下来🐾 文章目录1.亲戚2.合并集合3.连通块中点的数量有关并查集的知识学习可以移步至—— 【算法】——并查集1.亲戚 或许你并不知道&#…

c语言tips-大端小端存储介绍和使用union判断大小端

1. 大小端介绍 大端(Big Endian)和小端(Little Endian)是两种CPU或者计算机系统存储数据的方式。 在大端系统中,数据的高位字节(MSB)存储在内存地址的低位,低位字节(LSB…

【C++】C++入门(下)

引用 什么是引用?   引用是给一个已经存在的变量取一个别名,在语法上并不会给这个别名开一个空间,它和她引用的变量共用一个空间。但是实际上引用也是开了一块空间的,用来存放引用名。引用是按照指针的方式来实现的。引用语法&…

《分布式技术原理与算法解析》学习笔记Day23

分布式数据复制 我们在进行分布式数据存储设计时,通常会考虑对数据进行备份,以提高数据的可用性和可靠性,“数据复制技术”就是实现数据备份的关键技术。 什么是数据复制技术? 在分布式数据库系统中,通常会设置主备…

华为OD机试用Python实现 -【统一限载货物数最小值】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲统一限载货物数最小值题目描述输入描述输出描述说明示例一输入输出说明示例二输入输出说明Python 代码实现算法逻辑华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查…

python爬虫常见错误

python爬虫常见错误前言python常见错误1. AttributeError: WebDriver object has no attribute find_element_by_id1. 问题描述2. 解决办法2. selenium:DeprecationWarning: executable_path has been deprecated, please pass in1. 问题描述2. 解决办法3. 下载了包…

k8s-资源限制-探针检查

文章目录一、资源限制1、资源限制的使用2、reuqest资源(请求)和limit资源(约束)3、Pod和容器的资源请求和限制4、官方文档示例5、资源限制实操5.1 编写yaml资源配置清单5.2 释放内存(node节点,以node01为例…