多读书多实践,勤思考善领悟

Spark开发环境搭建

本文于1695天之前发表,文中内容可能已经过时。

一、安装Spark

1.1 下载并解压

官方下载地址:http://spark.apache.org/downloads.html ,选择Spark版本和对应的Hadoop版本后再下载:

解压安装包:

1
2

# tar -zxvf spark-2.2.3-bin-hadoop2.6.tgz

1.2 配置环境变量

1
# vim /etc/profile

添加环境变量:

1
2
export SPARK_HOME=/usr/app/spark-2.2.3-bin-hadoop2.6
export PATH=${SPARK_HOME}/bin:$PATH

使得配置的环境变量立即生效:

1
# source /etc/profile

1.3 Local模式

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

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


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

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

二、词频统计案例

安装完成后可以先做一个简单的词频统计例子,感受spark的魅力。准备一个词频统计的文件样本wc.txt,内容如下�

1
2
3
4

hadoop,spark,hadoop
spark,flink,flink,spark
hadoop,hadoop

在scala交互式命令行中执行如下Scala语句:

1
2
3
val file = spark.sparkContext.textFile("file:///usr/app/wc.txt")
val wordCounts = file.flatMap(line => line.split(",")).map((word => (word, 1))).reduceByKey(_ + _)
wordCounts.collect

执行过程如下,可以看到已经输出了词频统计的结果:

同时还可以通过Web UI查看作业的执行情况,访问端口为4040

三、Scala开发环境配置

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

3.1 前置条件

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

3.2 安装Scala插件

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

3.3 创建Scala项目

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

3.4 下载Scala SDK

1. 方式一

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

2. 方式二

方式一是Scala官方安装指南里使用的方式,但下载速度通常比较慢,且这种安装下并没有直接提供Scala命令行工具。所以个人推荐到官网下载安装包进行安装,下载地址:https://www.scala-lang.org/download/

这里我的系统是Windows,下载msi版本的安装包后,一直点击下一步进行安装,安装完成后会自动配置好环境变量。

由于安装时已经自动配置好环境变量,所以IDEA会自动选择对应版本的SDK。

3.5 创建Hello World

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

3.6 切换Scala版本

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

3.7 可能出现的问题

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

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