Spark本地模式安装

【图书介绍】《Spark SQL大数据分析快速上手》-CSDN博客

《Spark SQL大数据分析快速上手》【摘要 书评 试读】- 京东图书

大数据与数据分析_夏天又到了的博客-CSDN博客

Hadoop完全分布式环境搭建步骤-CSDN博客,前置环境安装参看此博文

Spark本地模式安装

Spark本地模式的安装比较简单,直接启动2.2节安装配置好的CentOS7-201虚拟机,以hadoop账户登录Linux,下载并解压Spark安装文件就可以运行。这种模式可以让我们快速了解Spark。下面具体介绍一下Spark本地模式的安装。

下载Spark安装文件,解压并配置环境变量:

复制代码
[hadoop@server201 app]$ wget https://archive.apache.org/dist/spark/spark-3.3.1/ spark-3.3.1-bin-hadoop3.tgz
[hadoop@server201 app]$ tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /app/
[hadoop@server201 app]$ sudo vim /etc/profile
export SPARK_HOME=/app/spark-3.3.1
export PATH=$PATH:$SPARK_HOME/bin
[hadoop@server201 app]$ source /etc/profile

配置完成以后,先通过Spark Shell查看帮助和版本信息,还可以使用--help查看所有选项的帮助信息:

复制代码
[hadoop@server201 app]$ spark-shell --help
Usage: ./bin/spark-shell [options]
Scala REPL options:
  -I <file>                   preload <file>, enforcing line-by-line 
interpretation
Options:
  --master MASTER_URL      spark://host:port, mesos://host:port, yarn,
                               k8s://https://host:port, or local (Default: 
local[*]).
....

查看Spark的版本,直接使用--version参数即可:

复制代码
[hadoop@server201 app]$ spark-shell --version
Spark Version 3.3.1
Using Scala version 2.12.17, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_361
Branch HEAD
Compiled by user ubuntu on 2021-02-22T01:33:19Z
Revision 1d550c4e90275ab418b9161925049239227f3dc9
Url https://github.com/apache/spark
Type --help for more information.

使用Spark Shell启动Spark客户端,通过--master指定为local模式,通过local2指定使用 两核:

复制代码
$ spark-shell --master local[2]
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 3.3.1
      /_/
Using Scala version 2.12.17 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_361)
Type in expressions to have them evaluated.
Type :help for more information.
scala>

其中显示Spark的版本为3.3.1,Scala的版本为2.12.17。

下面我们运行官方提供的WordCount示例,示例中存在一些方法读者可能尚不明白,不过没有关系,在后面的章节中我们将会详细讲解。

(1)通过sc获取SparkContext对象并加载一个文件到内存中:

复制代码
scala> val file = sc.textFile("file:///app/hadoop-3.2.3/NOTICE.txt");
val file: org.apache.spark.rdd.RDD[String] = file:///app/hadoop-3.2.3/NOTICE.txt MapPartitionsRDD[1] at textFile at <console>:1

(2)使用一系列的算子对文件对象进行处理:先按空格键和回车键进行分割,然后使用map将数据组合成(key,value)形式,最后使用reduceByKey算子将key合并:

复制代码
scala> val words = file.flatMap(_.split("\\s+")).map((_,1)). reduceByKey(_+_);
val words: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[4] at reduceByKey at <console>:1

(3)调用collect方法输出结果:

复制代码
scala> words.collect
val res0: Array[(String, Int)] = Array((this,2), (is,1), (how,1), (into,2), (something,1), (hive.,2), (file,1), (And,1), (process,1), (you,2), (about,1), (wordcount,1), (import,1), (a,1), (text,1), (be,1), (to,2), (in,1), (tell,1), (for,1), (must,1))

对于上例的运算过程,也可以打开宿主机浏览器访问http://192.168.56.201:4040查看运行效果,如图2-6所示。

图2-6 示例运行效果

从图2-6中可以看出,reduceByKey引发了第二个Stage,从Stage0到Stage1将会引发shuffle,这也是区分转换算子和行动算子的主要依据。

通过上面的示例可以看出,在本地模式下运行Spark不需要事先启动任何的进程;启动Spark Shell后,可以通过SparkContext读取本地文件系统目录下的文件。

(4)操作完成以后,输入":quit"即可退出:

复制代码
scala> :quit

[hadoop@server201 app]$
相关推荐
扶苏100214 分钟前
同一个 Git 项目整出两份,切分支互不影响?两种方案实测
大数据·git·elasticsearch
zhongerzixunshi17 分钟前
健全创新激励机制,激活企业发展内生动力
大数据·人工智能
71777727 分钟前
软件工程工业化实践:Gitee 智能化软件工厂全链路标准化交付体系解析
大数据·gitee·软件工程
Databend30 分钟前
从 Kafka 到 Databend Cloud:万亿级 Agent Trace 接入链路的工程实践
大数据·数据库·agent
TDengine (老段)1 小时前
TDengine taosX 与 Explorer — 数据集成与可视化管理
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
xiaopai9451 小时前
WPS能否替代工程项目管理系统
大数据·数据库·项目管理系统·建米软件
北京晶数信息科技1 小时前
成品油交易即开票原创一体化解决方案汇报(二)
大数据·人工智能·物联网·产品经理·需求分析
HAYDENR2 小时前
依赖数据迁移工具做增量同步有哪些易错点?调整数据迁移工具策略怎么保证断点续传可靠?
java·大数据·数据库
乌恩大侠2 小时前
图解 AI-RAN开发需要哪些软硬件:O-RU、DGX Spark、Sionna与Aerial
人工智能·spark·o-ru·ai-ran
中电金信2 小时前
中电金信 :一站式企业智能体柔性生产全链路解决方案
大数据·人工智能