三分钟了解大数据技术发展史

简介: 梳理下大数据技术发展

我们常说的大数据技术,大致主要起源于Google在2004年前后发表的三篇论文,其实数据处理早就存在,每个公司或者个人都有自己的大数据处理系统,并没有形成编程框架和理念,而这三篇论文也就是我们熟知的大数据三驾马车,分别是分布式文件系统GFS、大数据分布式计算框架MapReduce和NoSQL数据库BigTable,这三篇论文影响了当今大数据生态,可以称得上大数据的基石,Doug cutting大佬在基于谷歌的三篇论文开发出了hadoop hdfs分布式文件存储、MapReduce计算框架,实际上从hadoop开源代码中窥见大数据并没有多么高深的技术难点,大部分实现都是基础的java编程,但是对业界的影响是非常深远的。那个时候大多数公司还是聚焦在单机上,如何尽可能提升单机的性能,需求更贵的服务器,谷歌通过把许多廉价的服务器通过分布式技术组成一个大的存储、计算集群给业界应对存储计算问题提供了新的发展思路。

   2006年hadoop发布后,Yahoo首先运用起来,随后越来越多大公司开始采用hadoop进行大数据存储和计算,2008年hadoop  正式成为Apache顶级项目,许多大数据商业公司也开始出现,与此同时MapReduce编程模型编写较为复杂,Yahoo内部开发出了Pig一门脚本语言,提供类SQL的语法,开发者可以用pig脚本描述要对数据集进行的操作,Pig经过编译后会生成MapReduce程序,然后运行到Hadoop集群中。

Pig有个问题虽然比直接编写MR成需要容器但是仍然需要去学习新的脚本语法,于是Facebook又发明了HIve 支持使用SQL语言进行大数据计算,然后转化成MR计算程序运行,极大的简化了MapReduce分布式程序的门槛,让数据开发人员、数据分析师也能够快速入手,因此hive迅速得到了开发者和企业的追捧。随后众多Hadoop周边产品开始出现,其中包括:
专门将关系数据库中的数据导入导出到hadoop平台的Sqoop
数据收集诸如大规模日志进行分布式收集、聚合和传输的Flume
MapReduce工作流调度引擎Oozie、Airflow、Azkaban
在Hadoop早起MapReduce即是一个执行引擎又是一个资源调度框架,其中包含许多组件使得MapReduce非常臃肿也不利于资源复用,于是出现了Yarn可以将MapReduce的资源调度与执行引擎分离开来,随后被各类大数据产品支持,成为大数据平台上最主流的资源调度系统。
经历了多年的发展从2016年前后MapReduce慢慢的被其他产品取代了,为什么会被取代了?
主要有以下原因,高昂的维护成本,使用MapReduce需要严格的遵循Map和Reduce编程规范,当要处理更为复杂的业务流程,往往需要协调多个Map和多个Reduce任务。然而每一步的MapReduce都可能出错,另外在机器学习业务场景非常复杂的,往往需要经历数据ETL处理完成数据导入、特征处理、数据压缩、数据备份、数据验证、数据训练等等,一个完整的业务流程需要多个任务,每一个Mr任务都可能出错,都需要重试和异常处理机制,所以维护和开发这些系统比较难受。另外主要就是性能问题,机器学习迭代计算一个MapReduce程序就是进城运行,运行就需要启动一次,带来了大量时间性能损失,另外就是MR主要采取磁盘作为存储介质,中间数据都经过磁盘进行数据的读取和结果的写入。另外就是MapReduce程序配置麻烦,比如缓冲大小、分片多少、都需要经过时间去调试。
在2012年左右,UC伯克利AMP实验室开发的Spark逐渐展露头角,spark以Rdd的数据使方式、采用内存计算模型,再加上慢慢的Spark Sql 、Spark MLlib、Spark Graph等生态的完善,逐步取代了MapReduce在企业应用中的地位。

一般来说像MapReduce、Spark这类框架主要处理的业务场景都被称为批处理系统,其中的计算时间较长及面对的数据也是历史数据,而不是在线实时数据,所以这类计算称之为大数据离线计算,而在大数据领域还有一类需要对实时产生的数据进行即使计算,相应的有Storm、Flink、SparkStreaming、等流计算框架来处理实时在线产生的数据去满足实时大数据的应用场景,这类计算也称为大数据实时计算。当然大数据业务场景需要同时采用批处理技术对历史数据进行计算,同时采用实时计算处理实时新增的数据,而像Flink这样的计算引擎,就可以同时支持流批一体计算了。
另外除了大数据计算外,还会有解决大规模数据存储与访问的NoSql系统也被称之为大数据技术,比如Hbase、Cassandra、ClickHouse等。

大数据处理的主要应用场景包括数据分析、数据挖掘、数据可视化与机器学习。数据分析主要使用 Hive、Spark SQL 等 SQL 引擎完成;数据挖掘与机器学习则有专门的机器学习框架 Spark 、TensorFlow、Mahout 、PyTorch、Alink等,内置了主要的机器学习和数据挖掘算法。 大数据要存入分布式文件系统(HDFS),要有序调度 MapReduce 和 Spark 作业 执行,并能把执行结果写入到各个应用系统的数据库中,需要大数据调度平台,如何去管理整个大数据生态为业务赋能,还需要有一个大数据平台整合所有 这些大数据组件和企业应用系统。
大数据与云原生,谷歌进化的角度依旧没有停止从2014年谷歌又推出k8s,又给业界带来了巨大的震撼,如今有一种趋势,大数据开始结合云原生已经成为一种趋势了,可以关注下这个

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
7月前
|
存储 人工智能 大数据
云栖2025|阿里云开源大数据发布新一代“湖流一体”数智平台及全栈技术升级
阿里云在云栖大会发布“湖流一体”数智平台,推出DLF-3.0全模态湖仓、实时计算Flink版升级及EMR系列新品,融合实时化、多模态、智能化技术,打造AI时代高效开放的数据底座,赋能企业数字化转型。
1355 0
|
9月前
|
数据采集 人工智能 分布式计算
ODPS在AI时代的发展战略与技术演进分析报告
ODPS(现MaxCompute)历经十五年发展,从分布式计算平台演进为AI时代的数据基础设施,以超大规模处理、多模态融合与Data+AI协同为核心竞争力,支撑大模型训练与实时分析等前沿场景,助力企业实现数据驱动与智能化转型。
597 4
|
10月前
|
存储 分布式计算 Hadoop
Hadoop框架解析:大数据处理的核心技术
组件是对数据和方法的封装,从用户角度看是实现特定功能的独立黑盒子,能够有效完成任务。组件,也常被称作封装体,是对数据和方法的简洁封装形式。从用户的角度来看,它就像是一个实现了特定功能的黑盒子,具备输入和输出接口,能够独立完成某些任务。
|
7月前
|
数据可视化 大数据 关系型数据库
基于python大数据技术的医疗数据分析与研究
在数字化时代,医疗数据呈爆炸式增长,涵盖患者信息、检查指标、生活方式等。大数据技术助力疾病预测、资源优化与智慧医疗发展,结合Python、MySQL与B/S架构,推动医疗系统高效实现。
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
698 79
|
9月前
|
SQL 分布式计算 大数据
我与ODPS的十年技术共生之路
ODPS十年相伴,从初识的分布式计算到共生进化,突破架构边界,推动数据价值深挖。其湖仓一体、隐私计算与Serverless能力,助力企业降本增效,赋能政务与商业场景,成为数字化转型的“数字神经系统”。
|
9月前
|
存储 人工智能 算法
Java 大视界 -- Java 大数据在智能医疗影像数据压缩与传输优化中的技术应用(227)
本文探讨 Java 大数据在智能医疗影像压缩与传输中的关键技术应用,分析其如何解决医疗影像数据存储、传输与压缩三大难题,并结合实际案例展示技术落地效果。
|
9月前
|
机器学习/深度学习 算法 Java
Java 大视界 -- Java 大数据在智能物流运输车辆智能调度与路径优化中的技术实现(218)
本文深入探讨了Java大数据技术在智能物流运输中车辆调度与路径优化的应用。通过遗传算法实现车辆资源的智能调度,结合实时路况数据和强化学习算法进行动态路径优化,有效提升了物流效率与客户满意度。以京东物流和顺丰速运的实际案例为支撑,展示了Java大数据在解决行业痛点问题中的强大能力,为物流行业的智能化转型提供了切实可行的技术方案。
|
10月前
|
数据采集 自然语言处理 分布式计算
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
|
10月前
|
存储 分布式计算 算法
Java 大视界 -- Java 大数据在智能教育在线考试监考与作弊检测中的技术创新(193)
本文探讨了Java大数据技术在智能教育在线考试监考与作弊检测中的创新应用。随着在线考试的普及,作弊问题日益突出,传统监考方式难以应对。通过Java大数据技术,可实现考生行为分析、图像识别等多维度监控,提升作弊检测的准确性与效率。结合Hadoop与Spark等技术,系统能实时处理海量数据,构建智能监考体系,保障考试公平性,推动教育评价体系的数字化转型。