news 2026/5/12 1:02:35

大数据技生态中Hadoop、Spark、Hive、HDFS之间的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大数据技生态中Hadoop、Spark、Hive、HDFS之间的区别

Hadoop、Spark、Hive三者都是大数据相关的系统和技术,也属于数据管理系统的范畴,常见的问题无非就两个:1、数据怎么存;2、数据怎么算。为了方便理解这些技术,从单机时代来说,所有的数据都在一套服务器上,数据处理的任务都是IO密集型,也不是CPU密集型的,更谈不上分布式系统。在信息爆炸的时代,传统的单服务器已无法满足海量数据的存储和计算。问题在于如果有100台机器统一存储数据,该如何做管理呢?就好比老板直接对100个员工发号施令,肯定需要一些经理的角色帮助他管理这100个同事,让他们更像是一个团队在协作共事。

数据存储

在Hadoop平台上HDFS扮演这样一个经理的角色,HDFS会同意去管理这100个服务器的存储空间,提供相应的接口,让这一百台机器的存储空间看起来像在一台机器上。

数据计算

每一台机器都拥有自己的CPU内存,如果充分利用到这些资源让数据计算更快的完成就变成一个顺利成章的事情。在实现一个计算任务时,任务该怎么分配到这些机器上,任务之间如何做同步,出现某一台机器掉链子的情况怎么处理,这些都是典型的并行编码的复杂性。 为了解决这些问题,HDFS通过引入MapReduce解决这些问题,MapReduce模块实际上提供了一个任务并行的框架,通过对API的抽象,把并行的程序分为两个阶段:map阶段、reduce阶段。 假设有一个任务量很大的活,需要100个人,把它平均分成100份,每人做一份,这个过程就是map阶段。reduce阶段是指:等100个任务完成,然后再把结果汇总到一起,形成最终结果。

过去&现在SQL的使用区别

不得不说SQL是一个伟大的发明。用户可以通过SQl语言去做数据处理, SQL中的S就是结构化处理的意思,这里有个前提数据是结构化的。Hive中有一个核心模块metastore,它的作用主要是用来存储这些结构化的信息。Hive中引擎会将SQL语句进行语法分析,生成语法树,这些步骤实际上和普通数据库没有区别,区别主要在执行阶段,Hive引擎会把SQl语句翻译成MapReduce的任务去执行,再把执行的结果进行加工返回给用户。 SQL的出现使得大数据处理任务的开发效率提高了,但是在数据处理的表达力和灵活性上不如直接写MapReduce程序,因此两个技术不是相互替代的关系,根据使用场景需要自行选择。

Spark VS Hadoop

Spark本身也是一个计算框架,和Hadoop经常被拿来做对比,准确来说是和Hadoop里面的MapReduce做对比。和MapReduce不同的是Spark是基于内存的计算,MapReduce是基于磁盘的计算。举个极端的例子,如果数据量不大,并且机器内存可以装得下的话,Spark会比MapReduce快100倍。毕竟是基于内存而不是基于磁盘。但是一般来说,默认会认为前者比后者快2~3倍。作为计算引擎,Spark还提供了比如说可以让用户去写流处理的streaming的模块、支持机器学习的MLib模块,以及支持图处理的GraphX

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 1:01:01

流水线ADC电容失配数字校准算法【附代码】

✨ 长期致力于流水线模数转换器、前台校准算法、后台校准算法、电容失配、级间增益误差研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)基于正交伪随机…

作者头像 李华
网站建设 2026/5/12 0:55:14

AI Dev:基于GPT的智能代码助手,提升开发效率与代码质量

1. 项目概述:AI Dev,一个为开发者减负的智能代码助手作为一名在软件开发一线摸爬滚打了十多年的老码农,我太清楚那种感觉了:你花了半小时,小心翼翼地改了几行代码,满怀信心地git commit -m “fix: 修复了一…

作者头像 李华
网站建设 2026/5/12 0:50:20

Unity依赖注入实战:AutoInject工具解放组件耦合难题

1. 项目概述&#xff1a;依赖注入的自动化革命如果你是一名Unity开发者&#xff0c;并且经历过这样的场景&#xff1a;在MonoBehaviour的Start()或Awake()方法里&#xff0c;写满了GetComponent<>()、FindObjectOfType<>()&#xff0c;甚至更糟糕的GameObject.Find…

作者头像 李华
网站建设 2026/5/12 0:48:51

crabc-api:一站式 API 数据服务平台,4.5.0 版本更新多项功能!

crabc-api 作为一款 API 接口开发平台&#xff0c;提供企业级接口管理等功能&#xff0c;支持多种数据源。其 4.5.0 版本有多项更新&#xff0c;提升了使用体验。 平台功能亮点 crabc-api 是企业级接口管理、SQL2API 、数据预览平台。它支持动态数据源、动态 SQL 和标签&#x…

作者头像 李华