本文主要介绍一下spark的安装及环境配置。
1、Apache spark下载
在浏览器输入网址
https://spark.apache.org/downloads.html进入spark的下载页面,如下图所示:
![Spark:安装及环境配置指南](https://s3.51cto.com/oss/202005/26/85f494bf9f909f6bdc3f3010a67ae42a.jpeg)
下载时需要注意的是在第1步选择完spark版本之后的第2步“choose a package type ”时,spark与hadoop版本必须配合使用。因为spark会读取hdfs文件内容而且spark程序还会运行在HadoopYARN上。所以必须按照我们目前安装的hadoop版本来选择package type。我们目前使用的hadoop版本为hadoop2.7.5,所以选择Pre-built for Apache Hadoop 2.7 and later。
点击第3步Download Spark后的连接
spark-2.1.2-bin-hadoop2.7.tgz进入下图所示的页面。在国内我们一般选择清华的服务器下载,这下载速度比较快,连接地址
![Spark:安装及环境配置指南](https://s3.51cto.com/oss/202005/26/43cbe2c4fbdce73d9c62e59d05e13f73.jpeg)
2、安装spark
通过WinSCP将
spark-2.1.2-bin-hadoop2.7.tgz上传到master虚拟机的Downloads目录下,然后解压到用户主目录下并更改解压后的文件名(改文件名目的是名字变短,容易操作)。解压过程需要一点时间,耐心等待哈。
![Spark:安装及环境配置指南](https://s1.51cto.com/oss/202005/26/1bb8737fb8a486add1265ffe9b0876e5.jpeg)
解压完成后通过ls命令查看当前用户主目录,如下图所示增加了spark-2.1.2-bin-hadoop2.7文件目录
![Spark:安装及环境配置指南](https://s3.51cto.com/oss/202005/26/c3719c7d6793f9c029765e31eda4b17f.jpeg)
通过mv命令更改spark-2.1.2-bin-hadoop2.7名为spark
![Spark:安装及环境配置指南](https://s5.51cto.com/oss/202005/26/8a7bc2ea9f15d2040ad654c31d0bddb5.jpeg)
3、配置spark环境变量
通过命令vim .bashrc编辑环境变量
![Spark:安装及环境配置指南](https://s2.51cto.com/oss/202005/26/83b1d6394f00cffe0b31a05eb4478f46.jpeg)
在文件末尾增加如下内容,然后保存并退出
![Spark:安装及环境配置指南](https://s3.51cto.com/oss/202005/26/719f8b70ae25f863e67a64007cfa3730.jpeg)
重新加载环境变量配置文件,使新的配置生效(仅限当前终端,如果退出终端新的环境变量还是不能生效,重启虚拟机系统后变可永久生效)
![Spark:安装及环境配置指南](https://s5.51cto.com/oss/202005/26/0229c4dc634266343757dac2c36c1826.jpeg)
通过spark-shell展示spark是否正确安装,Spark-shell是添加了一些spark功能的scala REPL交互式解释器,启动方式如下图所示。启动过程中会打印spark相关信息如版本。
![Spark:安装及环境配置指南](https://s2.51cto.com/oss/202005/26/51b49d323c17c1be4d2972abdf37336f.jpeg)
退出spark-shell使用命令:quit
![Spark:安装及环境配置指南](https://s5.51cto.com/oss/202005/26/62f901f6b4e830a3e5d814b57e990ea7.jpeg)
4、在其他节点安装spark
在master节点安装完成后只需复制spark文件目录及.bashrc文件到其他节点即可,具体操作命令可按下图操作
![Spark:安装及环境配置指南](https://s1.51cto.com/oss/202005/26/e212ec5f2c08b9eead30c671b3cfe510.jpeg)
![Spark:安装及环境配置指南](https://s5.51cto.com/oss/202005/26/cd5c681c4088305557a4d08ae5a41946.jpeg)
![Spark:安装及环境配置指南](https://s1.51cto.com/oss/202005/26/7efc308bdf1ef6feda595dc829a5a0a6.jpeg)
最后重启slave1、slave2即可使配置文件生效。到这里spark安装完成,接下来就是根据spark运行模式来配置spark相关配置文件使集群正常工作。
5、配置spark相关文件
第一步:spark-env.sh文件
通过环境变量配置确定的Spark设置。环境变量从Spark安装目录下的conf/spark-env.sh脚本读取。
可以在spark-env.sh中设置如下变量:
![Spark:安装及环境配置指南](https://s2.51cto.com/oss/202005/26/bba16a7b34d36924d8e9b86980ebf633.jpeg)
Spark相关配置
![Spark:安装及环境配置指南](https://s5.51cto.com/oss/202005/26/1214177f015682a5446003aac671a054.jpeg)
首先开启三个虚拟机master 、slave1、slave2,接下来在master主机上配置,配置完成之后将spark/conf发送到其他节点即可。
我们先跳转到spark/conf目录下看看我们需要配置哪些文件。如下图所示通过ls命令查看文件列表,我们今天主要用到的有spark-env.sh.template、slaves.template,我们还可以用log4j.properties.template来修改输出信息。
![Spark:安装及环境配置指南](https://s3.51cto.com/oss/202005/26/b26411966d1ea3733bf15bf2734a5ad1.jpeg)
注意,当Spark安装时,conf/spark-env.sh默认是不存在的。你可以复制
conf/spark-env.sh.template创建它。
![Spark:安装及环境配置指南](https://s2.51cto.com/oss/202005/26/7f1864064cea0cbb3547ad9d48030b43.jpeg)
通过vim编辑器编辑spark-env.sh,在终端中我们可以只输入前几个字母然后按tab键来给我们自动补全。
![Spark:安装及环境配置指南](https://s4.51cto.com/oss/202005/26/60041beab2eb30aa8fba5b3e1fdf74f1.jpeg)
在文件末尾添加如下内容,保存并退出
![Spark:安装及环境配置指南](https://s1.51cto.com/oss/202005/26/7a36d02de843669c38e9aacf964ba1c8.jpeg)
第二步:log4j.properties
spark在启动过程中会有大量日志信息打印出来,如果我们只想看警告或者错误,而不是一般信息可以在log4j.properties中设置,同样的spark为我们提供了一个模板文件,需要通过模板复制出log4j.properties
![Spark:安装及环境配置指南](https://s4.51cto.com/oss/202005/26/e8a8d25df579b997a3164d721aaf41bb.jpeg)
设置方法为将文件第二行INFO改为WARN
![Spark:安装及环境配置指南](https://s3.51cto.com/oss/202005/26/dcb6fda9dff874e8ee213c5cdc7d116a.jpeg)
更改完成后文件内容如下图所示,记得保存并退出。
![Spark:安装及环境配置指南](https://s2.51cto.com/oss/202005/26/fcbc2ab4fc038adf3bd4baa375542333.jpeg)
第三步:slaves文件
slaves文件主要作用是告诉spark集群哪些节点是工作节点worker,这里slaves文件也需要由模板文件复制过来,操作如下图所示
![Spark:安装及环境配置指南](https://s3.51cto.com/oss/202005/26/e2e5ef6f4666ab393d831a89cc7153a8.jpeg)
使用vim编辑器编辑slaves
![Spark:安装及环境配置指南](https://s4.51cto.com/oss/202005/26/ef5283d84473c9f8ec4c1507342de209.jpeg)
文件中输入如下内容,表示工作节点为slave1和slave2,保存并退出。
![Spark:安装及环境配置指南](https://s3.51cto.com/oss/202005/26/5e0024b890be7946b6a014939bbe7abe.jpeg)
最后将spark/conf目录移动到slave1 slave2节点spark目录下,操作如下图所示
![Spark:安装及环境配置指南](https://s5.51cto.com/oss/202005/26/e2b72059ad241138c30eb782fef33d13.jpeg)
现在就可以启动集群了,先启动hadoop集群(也可以不用hadoop,但是在实际应用中大部分spark还是会用到hadoop的资源管理YARN)再启动spark集群,操作如下所示。
![Spark:安装及环境配置指南](https://s5.51cto.com/oss/202005/26/525c8746854cc701564c3bcc092e8329.jpeg)
通过jps查看启动的进程,在master节点上spark的进程是Master,在slave节点上spark相关进程是Worker。
![Spark:安装及环境配置指南](https://s3.51cto.com/oss/202005/26/d616a407d1c680b354005bee9adb18eb.jpeg)
停止集群时要先停止spark集群
![Spark:安装及环境配置指南](https://s4.51cto.com/oss/202005/26/cf088ab955533795b3c66d4ad3e07e97.jpeg)
再停止hadoop集群
![Spark:安装及环境配置指南](https://s5.51cto.com/oss/202005/26/c59b72ee9d040ace91d1a139c24c63ec.jpeg)
spark相关的内容就到这里,关于spark的详细应用会有单独系列文章介绍,敬请期待。