下载安装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
安装成功后,会出现如下信息:
安装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安装成功!
配置spark
$ cd conf/
$ mv spark-env.sh.template spark-env.sh
$ sudo vim spark-env.sh
在文件中添加本地IP地址:
SPARK_LOCAL_IP=192.168.72.141
如下图所示,然后保存退出!
启动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语法。
在浏览器打开http://192.168.72.141:4040 ,会出现如下管理页面。
退出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的内容如下:
再次进入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
或者在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