Spark记录(一):Spark全景概述
一、Spark是什么
Spark是一个开源的大数据处理引擎。
二、Spark的主要组件如下图所示:

三、Spark运行时架构
Spark共有三种运行模式:本地模式、集群模式、客户端模式。
生产环境基本都是用集群模式。集群模式需要用到集群管理器,三个核心的集群管理器为:Spark自带的独立集群管理器、Yarn、Mesos。
集群模式运行时,单个Spark任务的架构图为:

其中集群管理器负责分配/回收服务器资源和监控整个Spark任务是否完成。
四、IDEA环境准备
1、准备Scala的SDK
若用Scala开发的话,需做此步。下载Scala的msi文件本地安装之后,在IDEA中如下图所示的加号位处导入Scala的SDK目录,导入之后会如下图所示:

2、在Plugins中安装名叫Scala的插件
自行安装即可
3、配置项目支持Scala
选中项目最高级目录后右键,选择【Add Framework Support】,然后在里面勾选Scala选项

如此之后,便可以在包里面右键new Scala类了:

4、导入maven依赖
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
版本用的是:
<spark.version>3.2.0</spark.version>
<scala.version>2.13</scala.version>
5、编写个简单的脚本运行
def main(args: Array[String]): Unit = {
val ss = SparkSession.builder().appName("localhost").master("local[*]").getOrCreate()
val df1 = ss.range(2, 100, 2).toDF()
val df2 = ss.range(2, 100, 4).toDF()
val df11 = df1.repartition(5)
val df21 = df2.repartition(6)
val df12 = df11.selectExpr("id * 5 as id")
val df3 = df2.join(df12, "id")
val df4 = df3.selectExpr("sum(id)")
df4.collect().foreach(println(_))
df4.explain()
}
运行结果:

Intersting Number!
explain打印出来的逻辑计划,有时间再详细解读。
另附:
1、下载历史Hadoop版本的地址:
http://archive.apache.org/dist/hadoop/core/
2、下载winutils.exe、hadoop.dll文件的地址:
https://blog.csdn.net/ytp552200ytp/article/details/107223357
Spark记录(一):Spark全景概述的更多相关文章
- Spark记录-本地Spark读取Hive数据简单例子
注意:将mysql的驱动包拷贝到spark/lib下,将hive-site.xml拷贝到项目resources下,远程调试不要使用主机名 import org.apache.spark._ impor ...
- Spark记录-SparkSql官方文档中文翻译(部分转载)
1 概述(Overview) Spark SQL是Spark的一个组件,用于结构化数据的计算.Spark SQL提供了一个称为DataFrames的编程抽象,DataFrames可以充当分布式SQL查 ...
- Spark记录-SparkSQL相关学习
$spark-sql --help 查看帮助命令 $设置任务个数,在这里修改为20个 spark-sql>SET spark.sql.shuffle.partitions=20; $选择数据 ...
- Spark记录-实例和运行在Yarn
#运行实例 #./bin/run-example SparkPi 10 #./bin/spark-shell --master local[2] #./bin/pyspark --master l ...
- Spark记录-官网学习配置篇(一)
参考http://spark.apache.org/docs/latest/configuration.html Spark提供三个位置来配置系统: Spark属性控制大多数应用程序参数,可以使用Sp ...
- Spark记录-spark编程介绍
Spark核心编程 Spark 核心是整个项目的基础.它提供了分布式任务调度,调度和基本的 I/O 功能.Spark 使用一种称为RDD(弹性分布式数据集)一个专门的基础数据结构,是整个机器分区数据的 ...
- Spark记录-spark介绍
Apache Spark是一个集群计算设计的快速计算.它是建立在Hadoop MapReduce之上,它扩展了 MapReduce 模式,有效地使用更多类型的计算,其中包括交互式查询和流处理.这是一个 ...
- Spark记录-spark与storm比对与选型(转载)
大数据实时处理平台市场上产品众多,本文着重讨论spark与storm的比对,最后结合适用场景进行选型. 一.spark与storm的比较 比较点 Storm Spark Streaming 实时计算模 ...
- Spark记录-Spark on mesos配置
1.安装mesos #用centos6的源yum安装 # rpm -Uvh http://repos.mesosphere.io/el/6/noarch/RPMS/mesosphere-el-repo ...
随机推荐
- js中针对dom的crud
1.怎样添加.移除.移动.复制.创建和查找节点? 1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 cr ...
- sunny 内网穿透使用。
启动方法:
- 修改为阿里的yum源
如果没有wget,先安装一个.(如果有请蹦过) yum install wget -y 备份本地yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.r ...
- CF1556D-Take a Guess【交互】
正题 题目链接:https://codeforces.com/contest/1556/problem/D 题目大意 现在有\(n\)个你不知道的数字,你有两种询问操作 询问两个下标的数字的\(and ...
- P6628-[省选联考 2020 B 卷] 丁香之路【欧拉回路,最小生成树】
正题 题目链接:https://www.luogu.com.cn/problem/P6628 题目大意 给出\(n\)个点的一张完全无向图,\(i\sim j\)的边权是\(|i-j|\). 然后给出 ...
- P4831-Scarlet loves WenHuaKe【组合数学】
正题 题目链接:https://www.luogu.com.cn/problem/P4831 题目大意 \(n*m\)的网格上放置\(2n\)个炮,要求互不能攻击. 数据满足\(n\leq m\leq ...
- CF1375F-Integer Game【交互】
正题 题目链接:https://www.luogu.com.cn/problem/CF1375F 题目大意 给出\(a,b,c\).先手每次指定一个数\(k\),然后后手指定一个数字加上\(k\),若 ...
- MySQL MVCC原理深入探索
一.MVCC的由来 二.MVCC的实际应用 RR级别场景 RC级别场景 三.MVCC的实现 3.1 多版本的数据从哪里来--Undo Log 3.1.1 插入操作对应的undo log 3.1.2 删 ...
- 小甲鱼零基础学python第25讲课后习题动手练习--通讯录
小甲鱼零基础学python第25讲课后习题动手练习---通讯录 **************************通讯录要求******************************* 输入指令: ...
- AtCoder Beginner Contest 223
AtCoder Beginner Contest 223 A是纯纯的水题,就不说了 B - String Shifting 思路分析 我真的sb,一开始想了好久是不是和全排列有关,然后读了好几遍题目也 ...