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 ...
随机推荐
- tomcat URI get 参数中文传到后台 乱码 URIEncoding
* 修改tomcat server.xml 找到这一行 <Connector connectionTimeout="20000" port="80" pr ...
- python学习1-博客-DB操作类
#学习python,准备写一个博客,第一天:在别人代码基础上写一个数据库操作的db.py1)python代码 #!/usr/bin/env python # -*- coding: UTF-8 -*- ...
- 由浅入深了解cookie
什么是 Cookie "cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 来创建和取回 c ...
- jmeter旅程第一站:Jmeter抓包浏览器或者抓取手机app的包
学习jmeter?从实际出发,我也是一个初学者,会优先考虑先用来做一些简单的抓包.接口测试,在实践的过程中学习jmeter用途.那么接下来,这篇文章我会以jmeter抓包开启我的jmeter旅程. 这 ...
- 【大咖直播】Elastic 企业搜索实战工作坊(第一期)
借助 App Search 提供的内置功能,您可轻松打造卓越的搜索体验.直观的相关度调整以及开箱即用的搜索分析,不仅可以优化所提供的内容,其提供的 API 还可帮助您将位于各处的所有内容源关联在一起. ...
- pkusc2021游记
@ 目录 前言 Day 0 Day 1 Day 2 Day 3 前言 到时候APIO的大概也会写在这篇里吧. Day 0 车,公交,飞机,公交,车 坐了半天的交通终于到了,整个人都坐的晕乎乎的,然后看 ...
- JPA基本用法
jpa基本查询 1.继承JpaRepository,生成了CRUD方法 public void testBaseQuery() throws Exception { User user=new U ...
- Unity——观察者模式
观察者模式 一.Demo展示 二.设计思路 我们假设一种情况,在app中修改了头像,在所有显示头像的UI中都需要更改相应的图片,一个个去获取然后调用刷新会非常麻烦: 因此我们需要一个自动响应机制--观 ...
- 如何无缝迁移 SpringCloud/Dubbo 应用到 Serverless 架构
作者 | 行松 阿里巴巴云原生团队 本文整理自<Serverless 技术公开课>,"Serverless"公众号后台回复"入门",即可获取系列文章 ...
- Redis缓存穿透、缓存击穿、缓存雪崩的介绍及其解决方案
首先,来画一张图了解下缓存处理的流程 一.缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求查询该数据,导致数据库压力过大. 解决方案: 1.接口校验 如鉴权校验.数据合法性 ...