前言
在《大数据之脚踏实地学10--Hive独立式安装》一文中我们已经介绍了Hive工具的安装流程,基于Hive可以轻松的在Hadoop集群内实现SQL语句的落地。如果没有她,数据的管理操作都要通过编写Java代码,运行Map-Reduce,那将是一件非常头疼的事。
在本期中,我们将继续安装另一件大数据神器,那就是Spark,它是一款专用于数据运算的引擎,它可以更好地适用于数据挖掘与机器学习等需要迭代的Map-Reduce的算法,并且它基于内存的运算,要比Hadoop高效很多。
安装Scala
由于Spark 是在 Scala 语言中实现的,并且其将 Scala 用作应用程序的框架,所以,在安装Spark之前,必须安装它的依赖,即 Scala软件。安装过程很简单,即解压、配置环境变量(注意,Scala在Master机器和Slave机器中都需要安装)。
- 下载Scala软件
前往Scala的官网(https://www.scala-lang.org/download/),直接下载最新版本的Scala软件,目前的版本为2.12.8。
- 上传至Master和Slave机器
利用xftp软件,将下载下来的压缩包软件上传至master主机和两台slave从机中。
- 解压缩
将xshell软件的的窗口调整至下图所示的效果(即通过菜单中的“选项卡“设置为“瓷砖排序”,并选择“工具”内的“发送键输入到所有对话“):
配置好窗口后,切换到/opt/SoftWare目录,使用如下命令,对Scala的.tgz文件做解压缩,并将解压缩目录重命名为scala:
tar -xzf scala-2.12.8.tgz
mv scala-2.12.8 scala
- 配置环境变量
vim /etc/profile
source /etc/profile
输入scala命令,如果出现下图中的结果,就说明你已成功安装scala软件。
安装Spark
安装Spark的过程与安装Scala很像,操作步骤也非常的简单,具体如下:
- 下载Spark软件
前往Spark的官网(http://spark.apache.org/downloads.html),直接下载最新版本的Spark软件,目前的版本为2.4.0。
- 上传至master与slave机器
- 解压缩
使用如下命令,对Spark的.tgz文件做解压缩,并将解压缩目录重命名为spark:
tar -xzf spark-2.4.0-bin-hadoop2.7.tgz
mv spark-2.4.0-bin-hadoop2.7 spark
- 配置文件
配置环境变量:vim /etc/profile
刷新环境变量:source /etc/profile
配置spark-env.sh文件
将目录切换到spark下的conf目录,即/opt/SoftWare/spark/conf,然后将spark-env.sh.template文件拷贝为spark-env.sh,然后利用vim命令,往文件末尾添加如下内容:
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
配置slaves文件
将slaves.template文件重新拷贝为slaves,然后利用vim命令,进入文件,将最后一行的localhost删除,并往文件末尾添加如下内容:
到目前为止,Spark的安装和配置就算完成了,接下来我们去启动并验证Spark(需要注意的是,启动前需要启动HDFS和YARN,因为基于Spark分析的数据还都存储在HDFS中)。
启动Spark
启动HDFS和YARN只需要在Master机器中执行如下两条命令,并通过jps查看启动的进程:
start-dfs.sh
start-yarn.sh
jps
启动Spark,需要先将目录切换到spark的sbin下,然后仅在Master机器中执行./start-all.sh命令。为验证是否成功启动,可以输入jps命令,结果如下:
从上图可知,master机器中多了Master进程,slave1和slave2机器中多了Worker进程,说明Spark已成功启动。最后,我们通过网页端,也能够发现Spark已启动,只需要在浏览器中输入master:8080
最后,我们再启动Spark的Shell(它是执行Spark代码的交互式环境,类似于Linux的终端),命令为spark-shell,看一看它长啥样子:
如上图所示,你会发现,在启动Spark的交互式窗口后,命令行的前缀是scala>,说明接下来等待你输入的是Scala语句。
结语
本期的内容就介绍到这里,由于后期我们将重点讲解Spark机器学习的应用,但考虑到很多朋友对Scala的了解并不是很多,所以我将准备15期左右的内容介绍Scala工具。如果你有任何问题,欢迎在公众号的留言区域表达你的疑问。同时,也欢迎各位朋友继续转发与分享文中的内容,让更多的人学习和进步。