单机模式

Reads: 825 Edit

下载安装jdk

JDK安装包可以从oracle官网(https://www.oracle.com/java/technologies/downloads/ )下载,然后使用WinSCP上传到虚拟机的Ubuntu系统。

sudo tar -xzvf jdk-8u202-linux-x64.tar.gz -C /usr/local

配置jdk环境变量

打开~/.bashrc文件

$ sudo vim ~/.bashrc

然后在文件末尾加入以下代码,保存退出。

export JAVA_HOME=/usr/local/jdk1.8.0_202
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

使环境变量生效

$ source  ~/.bashrc

查看java版本

$ java -version

安装成功后,会出现如下信息:

big-38

安装spark

Spark安装包可以从官网(https://spark.apache.org/downloads.html )下载,然后使用WinSCP上传到虚拟机的Ubuntu系统。

$ sudo tar -xzvf spark-3.3.1-bin-hadoop3-scala2.13.tgz  -C /usr/local

$sudo chmod -R 777 spark-3.3.1-bin-hadoop3-scala2.13/

配置jdk环境变量

打开~/.bashrc文件

$ sudo vim ~/.bashrc

然后在文件末尾加入以下代码,保存退出。

export SPARK_HOME=/usr/local/spark-3.3.1-bin-hadoop3-scala2.13
export PATH=${SPARK_HOME}/sbin:${SPARK_HOME}/bin:$PATH

使环境变量生效

$ source  ~/.bashrc

运行Spark自带计算PI的例子

$  cd /usr/local/spark-3.3.1-bin-hadoop3-scala2.13
$ run-example SparkPi 10

成功运行后,将给出pi的估计值,如下图所示。表明Spark安装成功!

big-60

配置spark

$ cd conf/
$ mv spark-env.sh.template spark-env.sh
$ sudo vim spark-env.sh

在文件中添加本地IP地址:

SPARK_LOCAL_IP=192.168.72.141

如下图所示,然后保存退出!

big-61

启动spark

切换到spark安装目录。输入spark-shell 即可启动spark单机模式。默认只启动一个线程,也可以加上参数设置启动线程数。

$  cd /usr/local/spark-3.3.1-bin-hadoop3-scala2.13
$  spark-shell						# 启动一个线程
$  spark-shell --master local[*]	# 启动和cpu相等的线程
$  spark-shell --master local[2]	# 启动n个线程

启动成功后,会进入scala shell,如下图所示。可以直接运行scala语法。

big-62

在浏览器打开http://192.168.72.141:4040 ,会出现如下管理页面。

big-63

退出spark

scala> :quit

scala的例子

进入spark安装目录

$  cd /usr/local/spark-3.3.1-bin-hadoop3-scala2.13

创建wcinput目录

$  sudo mkdir wcinput

将“song.txt”文件通过WinSCP上传到虚拟机的Ubuntu系统,并移动到spark安装目录的wcinpu目录下。

$  cp song.txt  /usr/local/spark-3.3.1-bin-hadoop3-scala2.13/wcinput/

song.txt的内容如下:

big41

再次进入spark安装目录

$  cd /usr/local/spark-3.3.1-bin-hadoop3-scala2.13

启动spark shell

$  spark-shell

在spark-shell中输入单词统计的代码(结果展示在控制台):

scala> sc.textFile("wcinput").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

big-64

或者在spark-shell中输入单词统计的代码(结果输出到文件中):

scala> sc.textFile("wcinput").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile("wcoutput")

退出spark-shell

scala> :quit

进入单词统计结果的输出目录,其中结果文件为part-00000和part-00001

$ cd wcoutput/

查看part-00000文件内容

$ cat cat part-00000

big-65


获取案例软件和数据,请关注微信公众号并回复:big_dt3


Comments

Make a comment