这篇文章主要介绍了Spark如何安装及环境配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
1、Apache spark下载
在浏览器输入网址
https://spark.apache.org/downloads.html进入spark的下载页面,如下图所示:
下载时需要注意的是在第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进入下图所示的页面。在国内我们一般选择清华的服务器下载,这下载速度比较快,连接地址
2、安装spark
通过WinSCP将
spark-2.1.2-bin-hadoop2.7.tgz上传到master虚拟机的Downloads目录下,然后解压到用户主目录下并更改解压后的文件名改文件名目的是名字变短,容易操作)。解压过程需要一点时间,耐心等待哈。
解压完成后通过ls命令查看当前用户主目录,如下图所示增加了spark-2.1.2-bin-hadoop2.7文件目录
通过mv命令更改spark-2.1.2-bin-hadoop2.7名为spark
3、配置spark环境变量
通过命令vim .bashrc编辑环境变量
在文件末尾增加如下内容,然后保存并退出
重新加载环境变量配置文件,使新的配置生效仅限当前终端,如果退出终端新的环境变量还是不能生效,重启虚拟机系统后变可永久生效)
通过spark-shell展示spark是否正确安装,Spark-shell是添加了一些spark功能的scala REPL交互式解释器,启动方式如下图所示。启动过程中会打印spark相关信息如版本。
退出spark-shell使用命令:quit
4、在其他节点安装spark
在master节点安装完成后只需复制spark文件目录及.bashrc文件到其他节点即可,具体操作命令可按下图操作
最后重启slave1、slave2即可使配置文件生效。到这里spark安装完成,接下来就是根据spark运行模式来配置spark相关配置文件使集群正常工作。
5、配置spark相关文件
第一步:spark-env.sh文件
通过环境变量配置确定的Spark设置。环境变量从Spark安装目录下的conf/spark-env.sh脚本读取。
可以在spark-env.sh中设置如下变量:
Spark相关配置
首先开启三个虚拟机master 、slave1、slave2,接下来在master主机上配置,配置完成之后将spark/conf发送到其他节点即可。
我们先跳转到spark/conf目录下看看我们需要配置哪些文件。如下图所示通过ls命令查看文件列表,我们今天主要用到的有spark-env.sh.template、slaves.template,我们还可以用log4j.properties.template来修改输出信息。
注意,当Spark安装时,conf/spark-env.sh默认是不存在的。你可以复制
conf/spark-env.sh.template创建它。
通过vim编辑器编辑spark-env.sh,在终端中我们可以只输入前几个字母然后按tab键来给我们自动补全。
在文件末尾添加如下内容,保存并退出
第二步:log4j.properties
spark在启动过程中会有大量日志信息打印出来,如果我们只想看警告或者错误,而不是一般信息可以在log4j.properties中设置,同样的spark为我们提供了一个模板文件,需要通过模板复制出log4j.properties
设置方法为将文件第二行INFO改为WARN
更改完成后文件内容如下图所示,记得保存并退出。
第三步:slaves文件
slaves文件主要作用是告诉spark集群哪些节点是工作节点worker,这里slaves文件也需要由模板文件复制过来,操作如下图所示
使用vim编辑器编辑slaves
文件中输入如下内容,表示工作节点为slave1和slave2,保存并退出。
最后将spark/conf目录移动到slave1 slave2节点spark目录下,操作如下图所示
现在就可以启动集群了,先启动hadoop集群也可以不用hadoop,但是在实际应用中大部分spark还是会用到hadoop的资源管理YARN)再启动spark集群,操作如下所示。
通过jps查看启动的进程,在master节点上spark的进程是Master,在slave节点上spark相关进程是Worker。
停止集群时要先停止spark集群
再停止hadoop集群