PySpark数据分析基础:Spark本地环境部署搭建

简介: PySpark数据分析基础:Spark本地环境部署搭建

前言:


spark


Spark提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数据)的大数据处理的需求


官方资料介绍Spark可以将Hadoop集群中的应用在内存中的运行速度提升100倍,甚至能够将应用在磁盘上的运行速度提升10倍

20210315122557731.png


由于Spark框架大多都搭建在Hadoop系统之上,要明白Spark核心运行原理还是得对Hadoop体系有个熟悉的认知。从Hadoop1.0到Hadoop2.0架构的优化和发展探索详解这篇博客大家可以先去温习一下Hadoop整个体系,然后再来了解Spark框架会更有效率。


对于Spark的框架大家可以参考我之前的Spark三部曲:


Spark框架深度理解一:开发缘由及优缺点


Spark框架深度理解二:生态圈


Spark框架深度理解三:运行架构、核心数据集RDD


PySpark


PySpark 是 Spark 为 Python 开发者提供的 API。

  • 支持使用python API编写spark程序
  • 提供了PySpark shell,用于在分布式环境交互式的分析数据


20201011170224639.png


通过py4j,将pythonAPI链接到sparkContext上,以此python程序可以动态的访问jvm中的java对象,java也可以动态的回调python对象


首先SparkContext是spark程序的入口,SparkContext使用Py4J启动 JVM 并创建 JavaSparkContext。py4J启动sparkContext后, 分发到work节点, 所以集群节点上必须有python环境才能解析python文件。


那么废话不多说我们现在开始搭建。 若是大家安装速度过慢可以私聊博主分享网盘。


一、安装JDK


也就是下载JAVA的JDK了,这里给出官网链接:


JDK


我这里本地已经部署了,大家选择对应的版本下载就好,本人的JDK为 1.8.0_201Window-x64版本。


960fca61b77341dcb9d16d01409ee43b.png


安装完成即可,然后配置一下本地环境:

36e142d6e5914b45886eee6138dc75d8.png


然后classpath有:


".;%JAVA_HOME%\lib\dt.jar";%JAVA_HOME%\lib\tools.jar;C:\PROGRA~1\Java\JDK18~1.0_2\lib;"

6047f300f79c451883e1072ecd34b24f.png


之后在终端里输入:


java -version


77bb3bd26dc44df79301cbcc9a343bb3.png

这样就OK了


二、安装anaconda


这个我本地已经装好了,去官网上下载:


anaconda


选择对应版本下载就好了


24dd5a75dd9744fb9c99efc1e0bdbe76.png

这两个地方记得全勾上, 这样就省去了添加环境变量的麻烦。


0cbfd134d77c45b09ae19342a75cdd88.png


这样就安装完毕,一般使用他的Jupyter notebook。


三、安装spark


还是去spark的官网,这里为什么不先装Hadoop呢?是因为spark的版本要适配对应Hadoop的。


spark

484035854aad4333b7927401c4e88694.png

我这里直接下的是最新版本的


6434d48f055a4eadaf3edc33dd939640.png


我建议用最新版本,当然可能会报一些不兼容的错误,回退版本就行,但是还是建议用最新版本的软件。


然后继续配置环境变量:


614717e2185f4b4893e7660d9df4ba2f.png


然后记得在Path上再加上个:

ecd39f94bd8947b396291a5e682b8ac0.png


四、安装Hadoop


我这里的hadoop版本是2.6.0的版本已经很老了:


e93b3d87938f4610a21a3d3280462836.png

这里我们直接升级到新版本,不用删除老版本的hadoop直接下载新版本的hadoop然后更改一下环境变量就行了:


这里要注意一下版本问题,根据前面Spark我们选择的适配版本下载hadoop:

33cdc4ac523d49a99d0167a8684f9eb0.png

binary和source的区别


binaries表示已编译好的文件,可以直接使用的版本;

source表示源代码版本,需要自己编译;

我们下binary版本的,解压一下:


a88219e6420a4a67baefbe56e60390ca.png


然后继续修改环境变量:

b1b3da8baf7f4f8dbfc794e8fa7b926e.png


在Path上加上:

c46b1fd1bc954efc940e9108618a70e5.png


就好了。


五、安装Scala


Scala的安装方法我在另一篇博客有些完全没有问题:


de03cb7345e042eb8d2f7c5df1961a69.png


IDEA上使用Scala编程方法


安装以及使用都十分详细了,这里不做过多演示。


六、配置在Jupyter Lab中运行PySpark


首先确保自己是有JupyterLab的:

5b3001e62bfa4b608378fdb1f40d13a8.png


用conda list也能够看到:


0c0905c4dd4046eeab656150f562ffe7.png


没有安装的话使用conda install jupyterlab进行安装,然后继续修改环境变量就好了:

PYSPARK_DRIVER_PYTHON


d6c495ad6085495b88603c0833dc0d99.png


PYSPARK_DRIVER_PYTHON_OPTS

a5bc7f306cad4e1eaa62c4443a9e634e.png


有了这两个以后直接输入pyspark就好了

c1e8a71b562a41758d8d94298852738c.png

5e354488558e4cb99dda5dae593f7b3f.png


2a3158666ced4b6c9e8da9433cd7a96a.png

输入sc:


6c044710d3ba4fb595d88bf8a1a5291d.png

七、配置pyspark


下载的spark下面的python文件下面是自带pyspark包的,需要讲此包复制到anaconda的目录下面防止出现通过anaconda下载的pyspark和spark不兼容的情况。

 

3a776e856b75438890f351239d806802.png


转移到:

060a108da6ec4f3cafd20ebe079eef93.png


就可以了。


八、配置winutils


根据我们下载的Hadoop版本下载对应的winutils:

我这里是hadoop-3.3版本的就下了3.3版本的winutils:


a3463efe7ccc46da86a1a9b0e1b4ae9c.png


放到hadoop的bin目录下。


九、安装findspark


直接输入:


pip install findspark



九、检验是否存在错误


在cmd上输入spark-shell是否存在问题:


spark-shell


5e51b105371944d7b0849e510a50a9e7.png


证明Spark安装是没有产生任何问题的。

那么我们进行pyspark的测试:

在cmd上面输入pyspark:

进入Jupyterlib:

检验一下findspark:

import findspark
findspark.init()
findspark.find()

574f7293fe18401cb28d5eb1bc25c264.png

没有问题。 跑个实例:

import findspark
findspark.init()
from pyspark import SparkContext
sc = SparkContext("local", "count app")
words = sc.parallelize(
    ["scala",
     "java",
     "hadoop",
     "spark",
     "akka",
     "spark vs hadoop",
     "pyspark",
     "pyspark and spark"
     ])
counts = words.count()
print("Number of elements in RDD -> %i" % counts)

能跑通就说明没问题。


0ccde4a24c364bd3b7824f07495b5a20.png


当然Juypterlib上面也一样:

68204f2f74ad46d7be879a291d023120.png

目录
相关文章
|
4月前
|
SQL 分布式计算 数据可视化
Spark SQL案例【电商购买数据分析】
Spark SQL案例【电商购买数据分析】
|
5月前
|
SQL 分布式计算 HIVE
pyspark笔记(RDD,DataFrame和Spark SQL)1
pyspark笔记(RDD,DataFrame和Spark SQL)
55 1
|
4月前
|
SQL 分布式计算 数据挖掘
Spark_Day07:Spark SQL(DataFrame是什么和数据分析(案例讲解))
Spark_Day07:Spark SQL(DataFrame是什么和数据分析(案例讲解))
77 0
|
2月前
|
分布式计算 资源调度 监控
Spark学习--1、Spark入门(Spark概述、Spark部署、Local模式、Standalone模式、Yarn模式)(一)
Spark学习--1、Spark入门(Spark概述、Spark部署、Local模式、Standalone模式、Yarn模式)(一)
93 1
|
7月前
|
分布式计算 大数据 Spark
基于Docker搭建大数据集群(四)Spark部署
基于Docker搭建大数据集群(四)Spark部署
|
4月前
|
分布式计算 大数据 Linux
Python大数据之PySpark(三)使用Python语言开发Spark程序代码
Python大数据之PySpark(三)使用Python语言开发Spark程序代码
106 0
|
4月前
|
SQL 分布式计算 数据挖掘
面试官嫌我Sql写的太low?要求我重写还加了三个需求?——二战Spark电影评分数据分析
面试官嫌我Sql写的太low?要求我重写还加了三个需求?——二战Spark电影评分数据分析
46 0
面试官嫌我Sql写的太low?要求我重写还加了三个需求?——二战Spark电影评分数据分析
|
4月前
|
分布式计算 数据挖掘 关系型数据库
Spark综合练习——电影评分数据分析
Spark综合练习——电影评分数据分析
25 0
|
4月前
|
SQL 分布式计算 数据可视化
Spark SQL【基于泰坦尼克号生还数据的 Spark 数据分析处理】
Spark SQL【基于泰坦尼克号生还数据的 Spark 数据分析处理】
|
5月前
|
SQL 存储 分布式计算
pyspark笔记(RDD,DataFrame和Spark SQL)2
pyspark笔记(RDD,DataFrame和Spark SQL)
42 2