龙空技术网

Spark Standalone集群模式部署(Window)及其Python开发环境搭建

软件测试开发技术栈 218

前言:

现时大家对“apachepython开发环境搭建”都比较注意,姐妹们都想要知道一些“apachepython开发环境搭建”的相关内容。那么小编也在网摘上网罗了一些对于“apachepython开发环境搭建””的相关内容,希望大家能喜欢,我们快快来了解一下吧!

概述

Spark提供了两种交互式shell, 一个是pyspark(基于Python), 一个是spark_shell(基于Scala). 这两个环境相互独立并无依赖关系, 所以如果仅仅是使用pyspark交互环境, 是可以不安装scala的。

常见的几种spark部署模式

local(本地模式):常用于本地开发测试,本地还分为local单线程和local-cluster多线程;standalone(集群模式):Spark本身是一个master/slaves的模式,可以看出Master是有单点故障的。on yarn(集群模式): 运行在 yarn 资源管理器框架之上,由 yarn 负责资源管理,Spark 负责任务调度和计算

其中standalone模式,需要通过手工或者用启动脚本来启动主从节点,进而实现单个机器作为工作域。

环境准备

从apache spark网站下载spark-2.3.2-bin-hadoop2.6.tgz预编译包, 选择预编译包, 免去了从源码直接编译的麻烦. spark2.3.2 在Java8+, python2.7+/3.4+ 运行,park的各个版本需要跟相应的Scala版本对应,因此我们使用的Scala2.11版本。

同时本机电脑配置 win7 4核8线程 8G内存.

所需所有的安装文件见下图:

安装JDK并设置环境变量

JAVA必须为1.7以上版本,如已安装请确认系统变量是否配置正确(在桌面右击【计算机】--【属性】--【高级系统设置】,然后在系统属性里选择【高级】--【环境变量】)。

假设JAVA安装目录在 D:\Program Files\Java,需要新建系统变量JAVA_HOME,值为D:\Program Files\Java\jdk1.8.0_181 ,如下图:

在PATH中加入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,如下图

解压并设置hadoop环境变量

Spark需要Hadoop的HDFS作为持久化层,所以在安装Spark之前需要安装Hadoop。解压hadoop-2.6.5.tar.gz到D盘根目录,hadoop-2.6.5目录重命名为hadoop

新建系统变量名HADOOP_HOME, 变量值为D:\hadoop,如下图

在PATH中加入%HADOOP_HOME%;%HADOOP_HOME%\bin,如下图

复制winutils.exe到D:\hadoop\bin 文件夹, winutils可以使windows使用linux命令。

解压spark并设置spark环境变量

Spark 由 Scala语言开发,而Scala也是运行于JVM之上,因此也可以看作是跨平台的,所以在下载spark-2.3.2-bin-hadoop2.6.tgz之后, 在Windows 平台直接解压即可。解压spark-2.3.2-bin-hadoop2.6.tgz 到D盘根目录,spark-2.3.2目录重命名为Spark。

新建系统变量名为SPARK_HOME ,设置变量值为D:\Spark,如下图

在PATH中加入%SPARK_HOME%;%SPARK_HOME%\bin,如下图

启动standalone集群

手动启动主从节点,打开cmd命令行,进入spark解压路径,D:\Spark\bin。

启动主节点:

spark-class org.apache.spark.deploy.master.Master

打开新的cmd终端启动从节点,从节点的IP为本机IP:

spark-class org.apache.spark.deploy.worker.Worker spark://xx.xx.240.58:7077 

启动完成可以登录Spark管理界面查看集群状态,localhost:8080 ,如下图

从上图我们可以看到我们的主从节点是都是本机240.58,但是目前没有运行任何应用,所以Running Applications为0。

注意,启动完成请勿关闭上述两个终端。同时如果启动spark shell时没有指定master,也可以正常启动spark shell和执行spark shell中的程序,但其实是启动了spark的local模式,仅在本机启动一个进程,并没有与集群建立联系。

运行Scala应用

打开新的cmd终端,输入

spark-shell --master spark://xx.xx.240.58:7077 --total-executor-cores 1 --executor-memory 1G 
total-executor-cores 1 表示 总共使用一个核心,executor-memory 1G 表示每个executor的内存为1G

如能显示如下界面,则可以运行scala命令。

输入

 spark.range(1).withColumn("status", lit("All seems fine. Congratulations!")).show(false)

如果能显示 All sems fine……语句,则Spark Standalone集群搭建成功。

查看集群运行状态

由上图可以看到目前有 Spark shell的应用正在运行,点击可查看详细。

使用pycharm编写pyspark脚本并提交到集群服务器运行环境准备

安装 anaconda 版本的 Python 2.7

安装 py4j-0.10.7-py2.py3-none-any.whl

pip install py4j-0.10.7-py2.py3-none-any.whl

py4j是个能访问java 对象的python程序,同样也能使java访问python对象。

导入pyspark模块

复制 D:\Spark\python 下的pyspark文件夹到python的安装目录,比如我的安装文件夹路径为C:\Anaconda2\Lib\site-packages,验证pyspark能否可以导入成功:

使用pycharm创建spark任务

打开localhost:8080 ,查看任务状态:

后续将介绍如何使用spark sql进行简单的数据挖掘与分析,若对你有帮助,点赞支持哦。

标签: #apachepython开发环境搭建 #spark平台搭建