spark的python开发安装方式_Spark Standalone集群模式部署(Window)及其Python开发环境搭建...

概述

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内存.

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

3fd9866383c2487a8c02d94c00695ec3

安装JDK并设置环境变量

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

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

1cbd9f3d5b2f426a892064427a45dafa

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

031f1ce5edae4aa48b759a78b1ac14c9

解压并设置hadoop环境变量

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

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

fd890fefffa2417c902b0ceab3389a74

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

beb9f78a97d342af85f2d76f0b61578a

复制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,如下图

eb770f64346a40fa8b7d20cd0581886a

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

969e9c3f6a914498bee54fcf05e0f30e

启动standalone集群

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

启动主节点:

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

af3d2859b529413a8cbd8e3d17d6e3ca

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

本机IP

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

702de91593a14e99ab204b6b0010e597

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

d226f252fcae492cb42319444ef9dcbb

从上图我们可以看到我们的主从节点是都是本机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命令。

91be9058192848d59b65d45d0c67d28f

输入

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

04a45cc3b0b6408f8cf3d398deb28cad

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

查看集群运行状态

e1757b51c78041a2a44d60b511c50843

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

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

环境准备

安装

anaconda 版本的 Python 2.7

https://store.continuum.io/cshop/anaconda/

安装

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能否可以导入成功:

0a48f2bfc25c4b91bf7bf5ace8404999

使用pycharm创建spark任务

817229213cc14c7d935909fd6e13ec59

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

f8a2916df4f64b658f43991c571d2366

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值