安装Spark

找到所需的Spark安装包

进入Spark官方下载界面,并选择对应的Spark版本(一般选择的type是Pre-built for Apache Hadoop 2.7),点击链接后,会进入到镜像列表,选择其中一个链接就ok了

命令行安装配置Spark

假设链接为https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.1.2/spark-3.1.2-bin-hadoop3.2.tgz,那么按照下列步骤即可

  • 下载.tgz文件
  • 解压
  • 改权限(这里直接设置成root,方便使用,在生产环境会有运维专门负责权限配置)
  • spark目录/bin加入PATH变量
# 创建文件夹
mkdir spark-files
# 下载
wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.1.2/spark-3.1.2-bin-hadoop3.2.tgz
# 解压
tar zxvf spark-3.1.2-bin-hadoop3.2.tgz
# 改权限
sudo chown -R root spark-3.1.2-bin-hadoop3.2
sudo chgrp -R root spark-3.1.2-bin-hadoop3.2
# 加入PATH变量
export SPARK_HOME=/home/ubuntu/spark-learn/spark-3.1.2-bin-hadoop3.2
export  PATH=${SPARK_HOME}/bin:$PATH
# 更新配置
source /etc/profile

现在,Spark就安装好了。

启动Spark(Local模式)

Local 模式是最简单的一种运行方式,它采用单节点多线程方式运行,不用部署,开箱即用,适合日常测试开发。

# 启动spark-shell
spark-shell --master local[2]
  • local:只启动一个工作线程;
  • local[k]:启动 k 个工作线程;
  • local[*]:启动跟 cpu 数目相同的工作线程数。

进入 spark-shell 后,程序已经自动创建好了上下文 SparkContext,等效于执行了下面的 Scala 代码:

val conf = new SparkConf().setAppName("Spark shell").setMaster("local[2]")
val sc = new SparkContext(conf)

Spark操作案例——词频统计

安装完成后可以先做一个简单的词频统计例子,假设有个文件 words.txt内容如下:

hello world
hello friend
hello my friend
hello

那么,在spark-shell里面做词频统计,可以用如下代码

// 本地读取文件 words.txt
val file = spark.sparkContext.textFile("file:///home/ubuntu/words.txt")
// 统计单词数量
val wordCounts = file.flatMap(line => line.split(",")).map((word => (word, 1))).reduceByKey(_ + _)
wordCounts.collect

配置IDEA Scala开发环境

Spark 是基于 Scala 语言进行开发的,分别提供了基于 Scala、Java、Python 语言的 API,如果想使用 Scala 语言进行开发,则需要搭建 Scala 语言的开发环境。

前置条件

Scala 的运行依赖于 JDK,所以需要本机有安装对应版本的 JDK,最新的 Scala 2.12.x 需要 JDK 1.8+。

安装Scala插件

IDEA 默认不支持 Scala 语言的开发,需要通过插件进行扩展。打开 IDEA,依次点击 File => settings=> plugins 选项卡,搜索 Scala 插件 (如下图)。找到插件后进行安装,并重启 IDEA 使得安装生效。

创建Scala项目

在 IDEA 中依次点击 File => New => Project 选项卡,然后选择创建 Scala—IDEA 工程:

下载Scala SDK

此时看到 Scala SDK 为空,依次点击 Create => Download ,选择所需的版本后,点击 OK 按钮进行下载,下载完成点击 Finish 进入工程。

创建Hello World

在工程 src 目录上右击 New => Scala class 创建 Hello.scala。输入如下代码,完成后点击运行按钮,成功运行则代表搭建成功。

object Hello extends App {
  println("Hello world!")
}

切换Scala版本

在日常的开发中,由于对应软件(如 Spark)的版本切换,可能导致需要切换 Scala 的版本,则可以在 Project Structures 中的 Global Libraries 选项卡中进行切换。

可能出现的问题

在 IDEA 中有时候重新打开项目后,右击并不会出现新建 scala 文件的选项,或者在编写时没有 Scala 语法提示,此时可以先删除 Global Libraries 中配置好的 SDK,之后再重新添加:

最后,在 IDEA 中以本地模式运行 Spark 项目是不需要在本机搭建 Spark 和 Hadoop 环境的。

最后修改:2021 年 07 月 13 日 12 : 17 PM
如果觉得我的文章对你有用,请随意赞赏