购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 一分钟建立Spark环境

在上述基础软件安装完成后,就可以正式设置Spark运行环境。首先从官网http://spark.apache.org/downloads.html/上下载Spark安装包,选择版本为Spark 2.4.5,选择的包类型为Pre-build for Apache Hadoop 2.7,如图3.34所示。

图3.34 Spark 2.4.5安装文件下载界面

注意

目前最新版本的是Spark 3.0预览版(Preview release),可能不稳定或者存在其他潜在问题,因此生产环境下还是建议使用Spark 2.x。

3.2.1 Linux搭建Spark环境

下载的安装包名为spark-2.4.5-bin-hadoop2.7.tgz,将其通过FinalShell工具上传到虚拟机的/root/ wmtools/目录中,用PuTTY进行远程登录,并切换当前目录为/root/wmtools/。在终端执行如下命令进行解压:

    [root@promote wmtools]# tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz -C ~/wmsoft/

解压完成后,一个单机的Spark环境基本就完成了,此时还需要进行验证,来确定一下,Spark环境是否可以正常工作。

首先进入Spark解压的安装目录/root/wmsoft/spark-2.4.5-bin-hadoop2.7/bin,用spark-submit命令提交任务:

    [root@promote bin]# cd /root/wmsoft/spark-2.4.5-bin-hadoop2.7/bin
    [root@promote bin]# ./spark-submit ../examples/src/main/python/pi.py

spark-submit命令可以提交任务到Spark集群上执行,也可以提交到Hadoop的YARN集群上执行。Spark的安装目录下有一个examples目录,其中有一些示例可供参考。这里运行examples目录中的Python语言编写的程序:求Pi的值,运行结果如图3.35所示。

图3.35 spark-submit提交求PI任务界面

此处默认的输出信息太多,这里配置一下日志文件,在目录conf下,重命名log4j.properties. template为log4j.properties,如图3.36所示。

图3.36 Spark日志目录界面

将log4j.properties文件中的:

    log4j.rootCategory=INFO, console

改成:

    log4j.rootCategory=ERROR,console

再次运行如下命令:

    [root@promote bin]# ./spark-submit ../examples/src/main/python/pi.py

则输出信息非常少,很容易定位到Pi is roughly 3.148980的输出结果,如图3.37所示。

图3.37 spark-submit提交求Pi任务界面(日志级别ERROR)

注意

Spark在运行时,如果提示了一个警告信息WARN NativeCodeLoader: Unable to load native-hadoop library,这是由于未安装和配置Hadoop导致的。但一般来说,并不影响Spark的使用。

另外,在bin目录下,还有pyspark命令,可以用来打开PySpark的交互界面,在终端命令行中输入如下命令:

    [root@promote bin]# ./pyspark

打开PySpark的交互界面如图3.38所示。

图3.38 PySpark的交互界面

虽然安装了Python 3.7,但是Spark启动后加载的还是Python 2.7.5。为了切换Python的运行版本至3.7,需要进行一些配置。在目录conf下,重命名spark-env.sh.template为spark-env.sh。然后在spark-env.sh中配置:

    PYSPARK_PYTHON=/usr/local/bin/python3

此时再次运行pyspark,则输出如下结果,如图3.39所示。

图3.39 PySpark交互界面(Python 3.7)

至此,一个基于CentOS 7版本的Spark环境基本搭建完成。只要前期做好基础工作,如操作系统上成功安装JDK 1.8,同时具备Python 3.x或者Python 2.x的环境,那么只要将Spark安装包进行解压和简单设置一下配置文件,即可完成单机Spark环境的搭建。

注意

Spark 2.4.5与Python 3.8还不太兼容,因此目前不建议安装Python 3.8。

3.2.2 Windows搭建Spark环境

虽然大数据工具很多都是为Linux操作系统而设计的,对Windows操作系统的支持并不友好,但是考虑到国内很多开发人员的计算机上安装的都是Windows操作系统,因此,在Spark开发环境搭建环节,除了介绍如何在Linux操作系统上搭建Spark环境外,还介绍如何在Windows 7操作系统上搭建Spark环境。

Window 7操作系统上搭建Spark环境更多的是方便程序的开发或学习,而Linux操作系统上搭建Spark环境更多的是构建Spark集群环境,更加接近于生产环境。

1.安装JDK 1.8

访问官网https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html,可以下载JDK 1.8相关版本,如图3.40所示。

图3.40 JDK 1.8安装文件下载界面

注意

下载Oracle JDK 1.8时,需要进行登录后才能下载,请先注册一个用户。

选择Windows x64版本对应的JDK安装包进行下载,在下载之前需要接受相关协议。这里安装的JDK版本是之前下载的jdk-8u191-windows-x64.exe文件。JDK只要大版本是8即可。在Windows操作系统上安装软件相对比较容易,双击可执行安装文件即可,基本按照向导一直点击【下一步】按钮即可完成安装,如图3.41所示。

图3.41 JDK 1.8安装界面

成功安装JDK后,需要配置环境变量。右击桌面上的【计算机】图标,在弹出的菜单中选择【属性】,并依次单击【高级系统设置】→【环境变量】,在系统变量中进行配置,单击【新建】按钮,在变量名文本框中输入JAVA_HOME,变量值文本框中输入JDK的安装路径,如C:\Program Files\Java\jdk1.8.0_191,单击【确定】按钮,如图3.42所示。

图3.42 JAVA_HOME环境变量配置

同样地,继续单击【新建】按钮,配置CLASSPATH。变量名为CLASSPATH,变量值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意:第一个分号前有一个点),如图3.43所示。

图3.43 CLASSPATH环境变量配置

配置Path系统变量。打开Path变量,在变量值最前面加入如下路径,并单击【确定】按钮。

    %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

如图3.44所示。

图3.44 PATH环境变量配置

运行cmd打开命令窗口,输入java –version和javac命令,若显示Java版本信息,则说明安装成功,如图3.45所示。

图3.45 cmd命令行验证java版本界面

注意

Windows cmd命令在环境变量变化时,可能需要重新打开进行验证,否则已打开的命令行无法加载新的配置。

2.安装Python 3.7

在官网https://www.python.org/downloads/上下载Python安装包,如图3.46所示。

图3.46 Python 3.7安装文件下载界面

选择合适的版本,由于Spark 2.4.5的pyspark与Python 3.8不兼容,因此选择Python 3.7版本进行下载。这里选择Python 3.7.7,下载的安装包为python-3.7.7-amd64.exe。双击它进行安装即可,如图3.47所示。

图3.47 Python 3.7安装界面

安装成功后,打开新的命令行,输入python命令进行验证,出现版本3.7.7信息,则说明安装成功,如图3.48所示。

图3.48 Python3.7交互界面

3.安装Hadoop 2.7

可以从https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/上下载Hadoop 2.7版本,选择hadoop-2.7.7.tar.gz进行下载,如图3.49所示。

图3.49 hadoop 2.7下载界面

下载完成后,将hadoop-2.7.7.tar.gz进行解压,这里解压到E:\wmsoft\hadoop-2.7.7,由于Hadoop在Windows操作系统上默认运行是有问题的,这里需要到网站https://github.com/steveloughran/winutils中下载Hadoop在Windows下的支持文件winutils,如图3.50所示。

图3.50 winutils下载界面

这里由于安装的是Hadoop 2.7.7,因此选择hadoop-2.7.1下的bin,将其覆盖到E:\wmsoft\hadoop-2.7.7\bin目录中,在此之前,建议先将之前的bin改名为bin_bak,如图3.51所示。

图3.51 winutils替换bin界面

修改E:\wmsoft\hadoop-2.7.7\etc\hadoop下的hadoop-env.cmd文件,将原来的配置:

    set JAVA_HOME= %JAVA_HOME%

修改为:

    set JAVA_HOME= C:\Program Files\Java\jdk1.8.0_191

在路径E:\wmsoft\hadoop-2.7.7\bin中打开cmd命令行,并输入hadoop命令,此时很可能会显示JAVA_HOME参数设置错误的提示,如图3.52所示。

图3.52 Hadoop在Windows上JAVA_HOME设置错误提示界面

Windows上的Hadoop加载JAVA_HOME可以说是存在Bug的,出现这样的情况,是因为JDK安装在C:盘下,如果是非C:盘,一般不会出现这样的情况。因此,将C:\Program Files\Java目录复制到其他磁盘,如D:盘下,并设置:

    set JAVA_HOME=D:\Java\jdk1.8.0_191

此时重新运行hadoop命令,分别输入hadoop和hadoop version,若提示如下信息,则说明安装成功,如图3.53所示。

为了可以在命令行中的任何目录执行hadoop相关命令,这里需要新建一个名为HADOOP_HOME的环境变量,变量值为E:\wmsoft\hadoop-2.7.7,如图3.54所示。

然后编辑Path环境变量,添加变量值%HADOOP_HOME%\bin;,此后就可以在命令行cmd中直接运行hadoop相关命令了,而无须切换到bin目录下。

图3.53 Hadoop在Windows系统上运行成功界面

图3.54 环境变量HADOOP_HOME设置界面

4.安装Spark 2.4.5

将压缩包spark-2.4.5-bin-hadoop2.7.tgz解压到E:\wmsoft\spark-2.4.5-bin-hadoop2.7,如图3.55所示。

图3.55 Spark在Windows系统上安装界面

此时新建环境变量名为SPARK_HOME,变量值为E:\wmsoft\spark-2.4.5-bin-hadoop2.7,如图3.56所示。

图3.56 SPARK_HOME环境变量配置界面

编辑Path环境变量,添加变量值为%SPARK_HOME%\bin;,如图3.57所示。

图3.57 Spark配置到Path环境变量界面

至此,可以测试Spark在Windows操作系统上安装是否成功,打开新的命令行窗口,输入pyspark,若出现如下界面,则说明安装成功,如图3.58所示。

图3.58 Windows系统下PySpark交互界面

在上述界面中输入quit()命令,则可以退出pyspark交互环境。同样地,在Windows操作系统上,可以用spark-submit命令提交任务来计算Pi的值,在cmd命令行中执行如下命令:

    spark-submit %SPARK_HOME%/examples/src/main/python/pi.py

成功执行的话,会看到Pi is roughly 3.135380的信息,如图3.59所示。

图3.59 Windows系统下spark-submit提交任务界面

将目录E:\wmsoft\spark-2.4.5-bin-hadoop2.7\conf中的log4j.properties.template文件改名为log4j.properties,并调整日志级别:

    log4j.rootCategory=INFO, console

改成:

    log4j.rootCategory=ERROR,console

再次运行,如图3.60所示。

图3.60 Windows系统下spark-submit提交任务界面(日志级别ERROR)

注意

生产环境不建议在Windows操作系统上进行Hadoop和Spark环境搭建,但是Windows操作系统上搭建Hadoop和Spark开发环境,可以避免安装虚拟机,同时对电脑配置要求也低一点,因此适合用于编程或学习。后续很多PySpark的操作都是在Windows操作系统上的Spark环境上运行的,请读者注意。 2BsRAUGKP2NuvLaFTV3dnxu8db67PkW1Ia6VOC1y4MEPoXONlY3ZSyregzdbyspz

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开