干翻Hadoop系列文章【02】:Hadoop、Hive、Spark的区别和联系

简介: 干翻Hadoop系列文章【02】:Hadoop、Hive、Spark的区别和联系

第一章:Hadoop和Hive以及Spark的关系是什么?

Hadoop和Hive、Spark都是大数据领域的技术栈。

一:大数据领域当中以后两个最为核心的问题

1:数据怎么存储

2:海量数据怎么计算

单机系统时代。

所有数据都在一个计算机上进行存储,数据处理任务都是IO密集型,而不是CPU密集型。

数据分布式存储

大数据时代 ,海量数据导致我们一台数据服务存不下。这样的话,我们需要一一直加机器进行分布式存储。

HDFS

这个时候问题就来了,我们使用100台数据存储数据,那么怎么去做管理呢?一个老板不能直接对100个员工直接发号施令,需要有一个经理去做统筹 ,让他们开起来是一个整体,在Hadoop当中干这个事的就是HDFS扮演了这样的经理的角色,HDFS统一管理者100台机器上的存储空间,提供一个接口让100机器的存储空间开起来在一台机器上,让用户感觉是有一个无限大的存储空间。

然后基于这个去写一个程序。

MapReduce

接下来还有一个问题,那就是数据计算的问题。毕竟数据存储下来就是为了计算的。

数据分布的存储在这些机器上。并且每一个机器都有自己的CPU和内存,如果能充分的利用到这些资源,是一个顺利成长的事。

但是作为一个程序员,我们如何写程序去操作这100台机器协作操作一个计算任务呢,比如说这些任务怎么分配到100台机器上,这些任务怎么去做同步。如果这个过程中有一个机器挂掉了怎么办,这都是非常典型的并行编程的复杂性。为了解决这个问题,MDFS当中引入了一个大名鼎鼎的模块:MapReduce模块。

MapReduce实际上是提供了一个任务并行的框架。通过他的API抽象,让用户把这个程序分成两个阶段,一个阶段就是Map阶段,就好比你有一个任务量很大的活,你有100个帮手。把他平均分成100分去完成,这个就是Map阶段,而Reduce阶段是等着100个小伙伴把任务完成,然后再把结果汇总到你这里,这就是一个reduce阶段。

Hive

**目前在Hadoop当中有HDFS处理存储问题,MapReduce处理计算。这看起来很美好,但是科技总是有懒人推动的。**大数据时代,这些懒人发现特么的我不能写SQL了,我需要写一个MapReduce程序,不光是写程序,还是一个非常专业的分布式处理的程序,这个需要比较高的计算机背景的。对于这一批用户,我能不能也在Hadoop上也写SQL。于是Hive就出现了。

Hive实际上就是一个在Hadoop上进行结构化处理的解决方案,为了能让用户写SQL处理,那么我们的数据就需要进行结构化处理,毕竟SQL的S就是结构化的意思。

这个区别在于Hive在执行阶段会把SQL翻译成为一个MapReduce程序去进行执行。然后再把执行的结果返回给用户。这就是一个完整的在Hive里边使用SQL处理数据的方式。hive的出现又把大数据工程师变成了SQL boy

从工程来看,效率和灵活性就是一个矛盾体。Hive的出现使得大数据处理任务的开发效率提高了,但是数据处理的表达性和灵活性上是不如直接写MapReduce的,所以这两门技术也不是互相替代的,而是根据不同的使用场景去选择。

最后在Hadoop上写SQL也不是只有Hive一个方案。像impala、presto等等都是 SQL on Hadoop的替代品。

Spark

最后说一说spark,spark经常用来和Hadoop来做对比。精确的说是和Hadoop中的MapReduce来做对比,spark是单纯的计算框架,他的不同之处是spark是一个基于内存的计算而MapReduce是一个基于磁盘的计算。所以,Spark的卖点就是快,毕竟内存的读取速度是磁盘的几百倍,普通我们认为Spark的处理速度是MapReduce的2-3倍。

如果说我们的数据集不大,我们内存完全装得下的话,Spark甚至可以比MapReduce快100倍。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
15天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
8天前
|
分布式计算 大数据 数据处理
【Flink】Flink跟Spark Streaming的区别?
【4月更文挑战第17天】【Flink】Flink跟Spark Streaming的区别?
|
17天前
|
SQL 分布式计算 Hadoop
利用Hive与Hadoop构建大数据仓库:从零到一
【4月更文挑战第7天】本文介绍了如何使用Apache Hive与Hadoop构建大数据仓库。Hadoop的HDFS和YARN提供分布式存储和资源管理,而Hive作为基于Hadoop的数据仓库系统,通过HiveQL简化大数据查询。构建过程包括设置Hadoop集群、安装配置Hive、数据导入与管理、查询分析以及ETL与调度。大数据仓库的应用场景包括海量数据存储、离线分析、数据服务化和数据湖构建,为企业决策和创新提供支持。
58 1
|
3月前
|
SQL 存储 分布式计算
Spark与Hive的集成与互操作
Spark与Hive的集成与互操作
|
3月前
|
SQL 分布式计算 Hadoop
Spark与Hadoop的关系和区别
Spark与Hadoop的关系和区别
|
3月前
|
SQL 数据采集 分布式计算
Hadoop和Hive中的数据倾斜问题及其解决方案
Hadoop和Hive中的数据倾斜问题及其解决方案
44 0
|
3月前
|
SQL 分布式计算 安全
HIVE启动错误:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeExcept
HIVE启动错误:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeExcept
139 0
|
3月前
|
SQL 存储 分布式计算
Hadoop中的Hive是什么?请解释其作用和用途。
Hadoop中的Hive是什么?请解释其作用和用途。
39 0
|
3月前
|
分布式计算 Hadoop 数据处理
Spark与Hadoop的区别是什么?请举例说明。
Spark与Hadoop的区别是什么?请举例说明。
56 0

相关实验场景

更多