华为项目 Spark相关
一、Spark简介
1、什么是Spark
发源于AMPLab实验室的分布式内存计算平台,它克服了MapReduce在迭代式计算和交互式计算方面的不足。
相比于MapReduce,Spark能充分利用内存资源提高计算效率。
2、Spark计算框架
Driver程序启动很多workers,然后workers在(分布式)文件系统中读取数据后转化为RDD(弹性分布式数据集),最后对RDD在内存中进行缓存和计算
(2)优化执行计划
4、Spark Api语言支持
(1)Scala
(2)Java
(3)Python
5、怎么运行Spark
Local本地模式、Spark独立集群、Mesos、Yarn-Standalone、Yarn-Client
二、编程模型
1、RDD(弹性分布式数据集)是什么
只读的、分块的数据记录集合
可以通过读取来不同存储类型的数据进行创建、或者通过RDD操作生成(map、filter操作等)
使用者只能控制RDD的缓存或者分区方式
RDD的数据可以有多种类型存储方式(可(序列化)存在内存或硬盘中)
2、RDD 存储类型
RDD可以设置不同类型存储方式,只存硬盘、只存内存等。
3、RDD操作
Transformation:根据已有RDD创建新的RDD数据集build
JavaSparkContext sc = new JavaSparkContext("local","SparkTest");
接受2个参数:
第一个参数表示运行方式(local、yarn-client、yarn-standalone等)
第二个参数表示应用名字执行结果:对list1数据集每行数据用","进行切分
执行结果:对list1数据集每行数据用","进行切分
(3)filter
filter对每行数据执行过滤操作,返回true则保留,返回false则过滤该行数据
执行结果:过滤list1数据集中包含‘a’字符的行
(4)union
union操作对两个RDD数据进行合并。与SQL中的union一样
执行结果:对pair1RDD数据集按key进行group by
(6)reduceByKey
reduceByKey对pair中的key先进行group by操作,然后根据函数对聚合数据后的数据操作
执行结果:先group by操作后进行concat
(7)mapValues
mapValues操作对pair中的value部分执行函数里面的操作
执行结果:对pair1RDD中value部分加上test字符串
(8)join
join与sql中join含义一致,将两个RDD中key一致的进行join连接操作
执行结果:对pair1RDD与pair2RDD按key进行join
(9)cogroup
cogroup对两个RDD数据集按key进行group by,并对每个RDD的value进行单独group by
执行结果:对pair1RDD与pair2RDD按key进行cogroup
6、RDD数据如何输出
count:统计输出数据行数
collect:输出所有输出数据
save:保存输出数据至外部存储
7、WordCount实例
执行结果:
8、广播变量& 累加器
Broadcast variables(广播变量)
Accumulators(累加器)
三、调度机制
1、DAG Scheduler
为每个job分割stage,同时会决定最佳路径,并且DAG Scheduler会记录哪个RDD或者stage的数据被checkpoint,从而找到最优调度方案 (transformations是延迟执行的原因)
2、DAG Scheduler优化
单个Stage内Pipeline执行
3、窄依赖& 宽依赖
窄依赖:每个子分区只依赖有限数目的父分区
宽依赖:每个子分区只依赖所有的父分区
4、Stage
调度器会在产生宽依赖的地方形成一个stage,同一个stage内的RDD操作会流式执行,不会发生数据迁移。
rdd join操作属于宽依赖,从spark产生的日志可以看出需要分3个stage执行
rdd flatMap、Map操作属于窄依赖,从spark产生的日志可以看出需要分1个stage执行
5、Shuffle
每个RDD都可以选择Partitioner进行shuffle操作
shuffle需要在node之间移动数据,会影响spark执行效率,应该尽量避免RDD操作中发生shuffle。
相关推荐
"spark相关jar包"的描述可能指的是Spark框架及其组件所需要的依赖库。这些jar包通常包括Spark自身的API、Hadoop相关库(因为Spark通常在Hadoop生态系统中运行)、Scala库(Spark是用Scala编写的,因此需要Scala的...
Spark的官方文档是学习Spark的重要资源,它详细解释了Spark的所有组件,包括Spark Core、Spark SQL、Spark Streaming、MLlib(机器学习库)和GraphX(图处理)。文档中包含了API的使用示例、配置指南和最佳实践,...
将提供的压缩包解压后,可以设置环境变量,配置Spark和Kafka的相关路径。然后,通过Scala、Java或Python编写Spark程序,调用Kafka的连接器实现数据的读写。在本地模式或集群模式下运行Spark应用,即可实现大数据的...
这个"spark相关学习资料.zip"压缩包很可能包含了一系列关于Spark的学习资源,如文档、教程、示例代码等,旨在帮助用户快速理解和掌握Spark的核心概念和技术。 Spark的核心特性包括: 1. **内存计算**:Spark引入了...
这个压缩包"Spark相关资料.zip"包含了一系列深入探讨Spark内部机制的文档,这些文档可以帮助我们理解Spark的工作原理和核心特性。 首先,"SparkInternal1-Overview.pdf"应该是Spark的总体概述,它可能会介绍Spark的...
标题中的"SPARK相关资料"涵盖了Spark的官方API以及四篇关于Spark的学术论文,这些资源对于深入理解和应用Spark技术至关重要。Spark官方API是开发人员编写Spark程序的基础,它包括了RDD(弹性分布式数据集)、...
《Spark相关资料三册.zip》这个压缩包包含的三册书籍分别是《Hadoop Spark生态系统操作与实战指南》、《Spark大数据处理_原理算法与实例》以及《Spark快速大数据分析》。这些资料深入浅出地介绍了Apache Spark这一...
### Spark相关面试知识点详解 #### 一、Spark基础概念及原理 **1.1 Spark简介** Apache Spark是一款专为大规模数据处理而设计的快速通用计算引擎。它支持多种编程语言如Scala、Java、Python等,并提供了高效的...
1、Spark大数据处理:技术、应用与性能优化(全).pdf 2、Spark高级数据分析.pdf 3、spark官方文档中文版.pdf 4、Spark架构原作者讲解(中文).pdf 5、Spark快速数据处理(前三章).pdf 6、Spark快速数据处理.pdf 7、...
Hadoop_Spark相关面试问题总结 - Hadoop知识库.pdf Hadoop_Spark相关面试问题总结 - Hadoop知识库.pdf Hadoop_Spark相关面试问题总结 - Hadoop知识库.pdf
### Spark相关知识点精选 #### 一、Spark简介与应用场景 **1.1 Spark概述** - **定义**: Apache Spark 是一种高性能、通用的集群计算平台,主要用于处理大规模数据集。 - **适用场景**: 包括批处理、迭代算法、...
本资料是集合20篇知网被引最高的基于spark的大数据论文,包括大数据Spark技术研究_刘峰波、大数据下基于Spark的电商实时推荐系统的设计与实现_岑凯伦、基于Spark的Apriori算法的改进_牛海玲、基于Spark的大数据混合...
1. **配置环境**:设置Spark相关的环境变量,如SPARK_HOME、HADOOP_CONF_DIR等。 2. **创建SparkContext**:Spark应用程序的入口点是SparkContext,它连接到Spark集群并管理所有资源。 3. **加载数据**:使用Spark的...
1、databricks-spark-reference-applications.pdf 2、Fast Data Processing with Spark(PACKT,2ed,2015).pdf 3、Fast Data Processing with Spark.pdf 4、Machine Learning with Spark.pdf 5、Machine Learning with...
An Architecture for Fast and General Data Processing on Large Clusters.pdf Discretized Streams An ...Spark SQL Relational Data Processing in Spark.pdf spark.pdf 大型集群上的快速和通用数据处理架构.pdf
Spark大数据相关书籍,Spark大数据相关书籍,Spark大数据相关书籍,Spark大数据相关书籍
spark 并行加载 greenplum 数据,为正确运行,需引入 spark 相关包和 greenplum 驱动。 <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core --> <groupId>org.apache.spark ...
2. **配置Spark环境变量**:在master节点的`.bash_profile`中添加Spark相关环境变量,如SPARK_HOME,然后在所有节点上使其生效。 3. **配置slaves文件**:将`slaves.template`重命名为`slaves`,并在其中列出所有从...
2. 添加Maven依赖,引入Spark相关的库。 3. 编写WordCount示例代码并运行,验证开发环境。 #### 总结 本文详细介绍了如何在本地环境中搭建Spark开发环境,包括JDK、Scala、Spark以及构建工具Maven的安装配置。通过...