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

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*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的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
8月前
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
393 79
|
8月前
|
SQL 分布式计算 IDE
如何在IDE中通过Spark操作Hive
通过以上方法和代码示例,你可以在IDE中成功通过Spark操作Hive,实现大规模数据处理和分析。确保理解每一步的实现细节,应用到实际项目中时能有效地处理各种复杂的数据场景。
457 28
|
8月前
|
SQL 分布式计算 关系型数据库
基于云服务器的数仓搭建-hive/spark安装
本文介绍了在本地安装和配置MySQL、Hive及Spark的过程。主要内容包括: - **MySQL本地安装**:详细描述了内存占用情况及安装步骤,涉及安装脚本的编写与执行,以及连接MySQL的方法。 - **Hive安装**:涵盖了从上传压缩包到配置环境变量的全过程,并解释了如何将Hive元数据存储配置到MySQL中。 - **Hive与Spark集成**:说明了如何安装Spark并将其与Hive集成,确保Hive任务由Spark执行,同时解决了依赖冲突问题。 - **常见问题及解决方法**:列举了安装过程中可能遇到的问题及其解决方案,如内存配置不足、节点间通信问题等。
基于云服务器的数仓搭建-hive/spark安装
|
8月前
|
SQL 分布式计算 资源调度
Dataphin功能Tips系列(48)-如何根据Hive SQL/Spark SQL的任务优先级指定YARN资源队列
如何根据Hive SQL/Spark SQL的任务优先级指定YARN资源队列
326 4
|
10月前
|
缓存 分布式计算 资源调度
Spark 与 MapReduce 的 Shuffle 的区别?
MapReduce 和 Spark 在 Shuffle 过程中有显著区别。MapReduce 采用两阶段模型,中间数据写入磁盘,I/O 开销大;而 Spark 使用基于内存的多阶段执行模型,支持操作合并和内存缓存,减少 I/O。Spark 的 RDD 转换优化减少了 Shuffle 次数,提升了性能。此外,Spark 通过 lineage 实现容错,资源管理更灵活,整体大数据处理效率更高。
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
本文详细解析了 Apache Spark 的两种常见部署模式:Standalone 和 YARN。Standalone 模式自带轻量级集群管理服务,适合小规模集群;YARN 模式与 Hadoop 生态系统集成,适合大规模生产环境。文章通过示例代码展示了如何在两种模式下运行 Spark 应用程序,并总结了两者的优缺点,帮助读者根据需求选择合适的部署模式。
533 3
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
536 2
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
444 1
|
分布式计算 Hadoop Spark
《Spark与Hadoop大数据分析》——3.7 小结
本节书摘来自华章计算机《Spark与Hadoop大数据分析》一书中的第3章,第3.7节,作者 [美]文卡特·安卡姆(Venkat Ankam),译 吴今朝,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1207 0

相关实验场景

更多