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

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 干翻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倍。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
1月前
|
分布式计算 数据处理 Apache
Spark和Flink的区别是什么?如何选择?都应用在哪些行业?
【10月更文挑战第10天】Spark和Flink的区别是什么?如何选择?都应用在哪些行业?
175 1
|
1月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
154 6
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
65 2
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-13-Hive 启动Hive 修改启动参数命令行启动测试 几句简单的HQL了解Hive
Hadoop-13-Hive 启动Hive 修改启动参数命令行启动测试 几句简单的HQL了解Hive
59 2
|
18天前
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
本文详细解析了 Apache Spark 的两种常见部署模式:Standalone 和 YARN。Standalone 模式自带轻量级集群管理服务,适合小规模集群;YARN 模式与 Hadoop 生态系统集成,适合大规模生产环境。文章通过示例代码展示了如何在两种模式下运行 Spark 应用程序,并总结了两者的优缺点,帮助读者根据需求选择合适的部署模式。
40 3
|
20天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
71 2
|
21天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
59 1
|
1月前
|
SQL 分布式计算 Hadoop
手把手的教你搭建hadoop、hive
手把手的教你搭建hadoop、hive
95 1
|
1月前
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
【10月更文挑战第5天】随着大数据处理需求的增长,Apache Spark 成为了广泛采用的大数据处理框架。本文详细解析了 Spark Standalone 与 YARN 两种常见部署模式的区别,并通过示例代码展示了如何在不同模式下运行 Spark 应用程序。Standalone 模式自带轻量级集群管理,适合小规模集群或独立部署;YARN 则作为外部资源管理器,能够与 Hadoop 生态系统中的其他应用共享资源,更适合大规模生产环境。文章对比了两者的资源管理、部署灵活性、扩展性和集成能力,帮助读者根据需求选择合适的部署模式。
26 1
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
53 3
下一篇
无影云桌面