大数据技术中Hadoop、Hive和Spark的关系

文章讲述了大数据时代数据管理系统的发展,包括Hadoop的HDFS解决分布式存储问题,MapReduce处理分布式计算,Hive为Hadoop引入SQL接口简化数据处理,以及Spark以内存计算提升处理速度。
摘要由CSDN通过智能技术生成

大数据属于数据管理系统的范畴,数据管理系统无非解决两个问题:

  1. 数据怎么存 2. 数据怎么算

数据管理系统的发展

数据存储

  1. 单机时代。一台服务器足以支撑所有数据的存储需求,计算也没有瓶颈。数据处理任务都是IO密集型。
  2. 信息爆炸时代,数据量越来越大,一台机器存不下了,就需要多台机器统一存储数据,此时数据管理便十分重要了。需要一些经理的角色来统一管理多台机器。

Hadoop生态中,HDFS扮演上述经理的角色,统一管理多台机器上的存储空间,提供一个接口,让多台机器看起来像是一台机器,基于这个去写应用程序。

数据计算

大数据时代,数据都分布式的存储在不同的机器上,每台机器都有自己的CPU内存,具有计算能力。我们需要充分利用这些资源,让数据计算更快的完成。随之而来的问题是,计算任务怎么分配到机器上,任务之间如何进行同步,如果有机器掉链子怎么办,这就涉及到了并行编程的复杂性。为解决上述问题,Hadoop中引入了MapReduce模块,提供了一个任务并行框架,提供一些API供用户把计算任务抽象成Map(任务划分)和Reduce(结果汇总)两个阶段。

如果要写MapReduce程序需要较强的计算机背景,之前只通过SQL处理数据的那波人就很难受了,因此他们想要在Hadoop中也能写SQL,于是Hive出现了。

Hive

Hive是在Hadoop上进行结构化数据处理的解决方案,其中的核心模块metastore就是用来存储数据的结构化信息(也就是表的信息,如有多少列、每列的数据结构是什么),Hive中的执行引擎会对一句SQL进行语法分析,生成语法树(也就是将SQL翻译成一个MapReduce任务去执行返回结果)。此举提高了大数据处理任务的开发效率,但降低了数据处理的灵活性和表达力,不如直接写MapReduce

Spark

Spark生态常常和Hadoop的MapReduce做对比。Spark也是一个计算框架,其与MapReduce的主要区别在于:Spark是基于内存的计算,MapReduce是基于磁盘的计算,所以Spark就是一个字,快!(如果内存装得下)

Spark也提供一些API让开发者写数据处理的程序。Spark SQL模块也向用户提供类似于Hive的功能

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值