- 浏览: 595992 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
Spark SQL比Hadoop Hive快,是有一定条件的,而且不是Spark SQL的引擎比Hive的引擎快,相反,Hive的HQL引擎还比Spark SQL的引擎更快。
其实,关键还是在于Spark 本身快。
Spark为什么快?
1、消除了冗余的HDFS读写
Hadoop每次shuffle操作后,必须写到磁盘,而Spark在shuffle后不一定落盘,可以cache到内存中,以便迭代时使用。如果操作复杂,很多的shufle操作,那么Hadoop的读写IO时间会大大增加。
2、消除了冗余的MapReduce阶段
Hadoop的shuffle操作一定连着完整的MapReduce操作,冗余繁琐。而Spark基于RDD提供了丰富的子操作,且reduce操作产生shuffle数据,可以缓存在内存中。
3、JVM的优化
Hadoop每次MapReduce操作,启动一个Task便会启动一次JVM,基于进程的操作。而Spark每次MapReduce操作是基于线程的,只在启动Executor是启动一次JVM,内存的Task操作是在线程复用的。
* task启动时间比较快,Spark是fork出线程;而MR是启动一个新的进程;
* 更快的shuffles,Spark只有在shuffle的时候才会将数据放在磁盘,而MR却不是。
* 更快的工作流:典型的MR工作流是由很多MR作业组成的,他们之间的数据交互需要把数据持久化到磁盘才可以;而Spark支持DAG以及pipelining,在没有遇到shuffle完全可以不把数据缓存到磁盘。
* 缓存:虽然目前HDFS也支持缓存,但是一般来说,Spark的缓存功能更加高效,特别是在SparkSQL中,我们可以将数据以列式的形式储存在内存中。
结论:Spark快不是绝对的,但是绝大多数,Spark都比Hadoop计算要快。这主要得益于其对mapreduce操作的优化以及对JVM使用的优化。
其实,关键还是在于Spark 本身快。
Spark为什么快?
1、消除了冗余的HDFS读写
Hadoop每次shuffle操作后,必须写到磁盘,而Spark在shuffle后不一定落盘,可以cache到内存中,以便迭代时使用。如果操作复杂,很多的shufle操作,那么Hadoop的读写IO时间会大大增加。
2、消除了冗余的MapReduce阶段
Hadoop的shuffle操作一定连着完整的MapReduce操作,冗余繁琐。而Spark基于RDD提供了丰富的子操作,且reduce操作产生shuffle数据,可以缓存在内存中。
3、JVM的优化
Hadoop每次MapReduce操作,启动一个Task便会启动一次JVM,基于进程的操作。而Spark每次MapReduce操作是基于线程的,只在启动Executor是启动一次JVM,内存的Task操作是在线程复用的。
* task启动时间比较快,Spark是fork出线程;而MR是启动一个新的进程;
* 更快的shuffles,Spark只有在shuffle的时候才会将数据放在磁盘,而MR却不是。
* 更快的工作流:典型的MR工作流是由很多MR作业组成的,他们之间的数据交互需要把数据持久化到磁盘才可以;而Spark支持DAG以及pipelining,在没有遇到shuffle完全可以不把数据缓存到磁盘。
* 缓存:虽然目前HDFS也支持缓存,但是一般来说,Spark的缓存功能更加高效,特别是在SparkSQL中,我们可以将数据以列式的形式储存在内存中。
结论:Spark快不是绝对的,但是绝大多数,Spark都比Hadoop计算要快。这主要得益于其对mapreduce操作的优化以及对JVM使用的优化。
发表评论
文章已被作者锁定,不允许评论。
-
Spark 会把数据都载入到内存吗
2017-06-01 10:14 814前言 很多初学者其实对Spark的编程模式还是RDD这个概念理 ... -
Spark Driver和Executor资源调度学习
2017-05-31 16:14 975一、引子 在Worker Actor中,每次LaunchE ... -
Spark 实现TopN的问题(groupBy)
2017-05-31 14:11 1399t2.txt ab 11 ab 23 ab 13 a ... -
Spark block和partition的区别
2017-05-31 13:48 972hdfs中的block是分布式存储的最小单元,类似于盛放文件的 ... -
Spark 什么是DAG(有向无环图)(窄依赖和宽依赖)
2017-05-26 16:46 2142在Spark里每一个操作生成一个RDD,RDD之间连一条边,最 ... -
Spark 集群的搭建(1.6.3)
2017-05-24 10:41 8参考内容:http://www.cnblogs.com/one ... -
Spark shuffle实现详细探究学习
2017-04-28 15:08 572Background 在MapReduce框架中,shuffl ... -
Spark collect和take函数学习(RDD-->Array)
2017-04-27 15:44 2105将RDD转成Scala数组,并返回。 函数原型 def ... -
Spark MLlib平台的协同过滤算法---电影推荐系统学习
2017-04-27 15:33 625import org.apache.log4j.{Level, ... -
Spark parallelize函数和makeRDD函数的区别(Array-->RDD)
2017-04-27 14:56 823我们知道,在Spark中创建RDD的创建方式大概可以分为三种: ... -
Spark Streaming实时计算学习
2017-04-27 10:31 941随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处 ... -
Spark 集群的搭建学习(1.6.3)
2017-04-25 14:30 784Spark是一个快速、通用的计算集群框架,它的内核使用Scal ... -
Spark SQL简单示例学习
2017-04-25 14:17 757Spark SQL 作为Apache Spark大数据框架的一 ... -
Spark RDD基于内存的集群计算容错抽象(核心概念)
2017-04-11 20:09 671摘要 本文提出了分布 ... -
Spark 入门知识学习
2017-04-08 11:46 400什么是Spark Apache Spark是 ...
相关推荐
在标题"spark-3.2.1 不集成hadoop安装包"中,我们看到的是Spark的一个特定版本——3.2.1,而且特别强调了这个版本不包含Hadoop的集成。这意味着这个Spark发行版没有内置对Hadoop的支持,用户需要自己配置和管理与...
集成Hadoop 2.7意味着Spark能够与Hadoop生态系统中的其他组件(如HDFS、YARN)无缝协作,处理存储在Hadoop集群上的大量数据。 Spark的核心设计是基于内存计算,通过在内存中缓存数据,减少磁盘I/O,从而显著提高了...
Hadoop是一个分布式文件系统(HDFS)和MapReduce计算模型的集合,为大规模数据处理提供基础设施。 Spark的核心特性是其基于内存计算的架构,称为Resilient Distributed Datasets (RDDs)。这种设计使得数据可以被...
Hadoop 2.7是一个稳定且广泛使用的分布式存储和计算框架,其YARN资源管理系统为Spark提供了运行环境。Spark 2.1.0与Hadoop 2.7的集成,确保了Spark作业可以在Hadoop集群上无缝运行,同时利用Hadoop的数据存储功能。 ...
《Python+Spark 2.0+Hadoop机器学习与大数据》是一本深入探讨大数据处理与机器学习技术结合的著作。作者林大贵以其丰富的经验,详细介绍了如何利用Python、Spark 2.0以及Hadoop这一组合来构建高效的数据分析解决方案...
- Spark SQL:提供了对结构化数据的处理能力,可以将SQL查询直接转换为DataFrame操作,方便数据分析。 - Spark Streaming:处理实时数据流,通过微批处理实现高吞吐量和低延迟的数据处理。 - MLlib:Spark的机器...
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点...
在IT领域,尤其是在大数据处理和分析中,Hadoop和Spark是两个非常重要的工具。Hadoop提供了分布式存储(HDFS)和分布式计算(MapReduce)的能力,而Spark则是在Hadoop之上构建的一个快速、通用且可扩展的数据处理...
这样做的好处在于,相比使用默认的MapReduce执行引擎,Hive on Spark可以提供更快的查询速度和更低的延迟,尤其是在复杂查询或交互式分析场景中。 在安装和配置Spark--bin-hadoop3-without-hive时,你需要确保你的...
1. 存储:Hadoop的HDFS(Hadoop Distributed File System)为Spark提供了分布式存储的基础,Spark可以通过HDFS读取和写入大量数据,实现数据的高效访问。 2. 计算:Hadoop的MapReduce框架是Spark早期版本的一个重要...
这是 Apache Spark 3.4.1 版本的二进制文件,专为与 Hadoop 3 配合使用而设计。Spark 是一种快速、通用的集群计算系统,用于大规模数据处理。这个文件包含了所有必要的组件,可以直接下载并在 Hadoop 3 环境中使用。
3. Spark Streaming:用于实时数据流处理,它可以将数据流划分为微批次,并利用Spark Core的批处理能力进行处理。 4. MLlib:Spark的机器学习库,包含多种机器学习算法,如分类、回归、聚类、协同过滤等,以及模型...
在本文中,我们将深入探讨Spark 3.3.3与Hadoop 3.x的集成,以及它们在大数据处理领域的关键知识点。 首先,Spark的核心特性包括其内存计算能力,这极大地提高了数据处理速度。Spark的RDD(弹性分布式数据集)是其...
这个名为"spark-3.2.1-bin-hadoop2.7.tgz"的压缩包是Spark的一个特定版本,即3.2.1,与Hadoop 2.7版本兼容。在Linux环境下,这样的打包方式方便用户下载、安装和运行Spark。 Spark的核心设计理念是快速数据处理,...
hadoop_spark_数据算法hadoop_spark_数据算法hadoop_spark_数据算法hadoop_spark_数据算法
总之,Spark 2.4.4是大数据处理领域的重要工具,它的新特性和改进为用户提供了更高效、更易用的平台,适用于大规模数据处理、机器学习、实时流处理等多种场景。无论你是数据科学家、开发人员还是运维人员,都可以在...
总的来说,"spark-2.2.0-bin-hadoop2.6.tgz"是为Hadoop环境准备的Spark发行版,提供了一套完整的工具集,支持用户在YARN上部署和运行Spark应用,实现大规模数据处理任务。通过熟练掌握Spark和Hadoop的相关知识,...
总的来说,Spark 3.0.0-bin-hadoop3.2是一个强大且灵活的大数据处理工具,适用于Windows平台,为开发者提供了高效的数据处理和分析能力。通过深入学习和实践,你可以掌握这一工具,解决各种大数据问题,实现复杂的...
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。Storm是一个分布式的、容错的实时计算系统。两者整合,优势互补。
Spark 2.4.7是Apache Spark的一个稳定版本,它为大数据处理提供了高效、易用且可扩展的框架。这个版本兼容Hadoop 2.7,这意味着它可以在使用Hadoop 2.7作为数据存储和资源管理的环境中无缝运行。Spark的核心特性包括...