摸鱼大数据——Spark基础——Spark环境安装——PySpark搭建

三、PySpark环境安装


 

PySpark: 是Python的库, 由Spark官方提供. 专供Python语言使用. 类似Pandas一样,是一个库

Spark: 是一个独立的框架, 包含PySpark的全部功能, 除此之外, Spark框架还包含了对R语言\ Java语言\ Scala语言的支持. 功能更全.  可以认为是通用Spark。

功能

PySpark

Spark

底层语言

Scala(JVM)

Scala(JVM)

上层语言支持

Python

Python\Java\Scala\R

集群化\分布式运行

支持

支持

定位

Python库 (客户端)

标准框架 (客户端和服务端)

是否可以Daemon运行

No

Yes

使用场景

生产环境集群化运行

生产环境集群化运行

若安装PySpark需要首先具备Python环境,这里使用Anaconda环境,安装过程如下:

 使用spark-shell方式可以进入spark的客户端,但是这个客户端编码是需要scala代码的,我们并不会。我们希望可以使用python代码操作spark。所以可以使用pyspark的客户端,但是一执行pyspark,就报出如下的错误:

原因: PySpark运行需要使用Python3.x的环境
解决办法: Anaconda安装Python3的环境。

通过Anaconda安装Python3

Anaconda(水蟒): 是一个科学计算软件发行版,集成了大量常用扩展包的环境,包含了 conda、Python 等 180 多个科学计算包及其依赖项,并且支持所有操作系统平台。
anaconda是一个大集成者, 包含有python的环境. 同时还包含各种用于数据分析python库, 一旦使用anaconda可以在一定程度上避免安装各种Python的库

anaconda提供一种虚拟化的测试, 可以基于anaconda虚拟出多个python的环境, 而且各个环境都是相对独立的 我们称为沙箱环境
为什么需要使用虚拟环境: 是因为python各个版本都是互相不兼容, 比如说python2 和python3 不兼容 甚至大家都是python3, 但是python3.8 无法兼容python3.7

1.下载Anaconda环境包

安装版本:https://repo.anaconda.com/archive/

Python3.8.8版本:Anaconda3-2021.05-Linux-x86_64.sh

2.安装Anaconda环境(三台节点都是需要安装)

此环境三台节点都是需要安装的, 以下演示在node1安装, 其余两台也是需要安装的

上传软件到/export/software目录下

cd /export/software

rz 上传Anaconda脚本环境

执行脚本:

sh Anaconda3-2021.05-Linux-x86_64.sh

不断输入空格, 直至出现以下解压, 然后输入yes

此时, anaconda需要下载相关的依赖包, 时间比较长, 耐心等待即可...., 在等待中如果需要输入yes/no, 直接输入yes

配置anaconda的环境变量,三个节点都需要进行相同的操作:

vim /etc/profile

##增加如下配置

#ANACONDA_HOME

export ANACONDA_HOME=/root/anaconda3/bin

export PATH=$PATH:$ANACONDA_HOME

修改bashrc文件,三个节点都需要进行相同的操作:

vim ~/.bashrc

在文件最上面添加如下内容:

export PATH=~/anaconda3/bin:$PATH

重新加载环境变量: source /etc/profile

说明:

profile

其实看名字就能了解大概了, profile 是某个用户唯一的用来设置环境变量的地方, 因为用户可以有多个 shell 比如 bash, sh, zsh 之类的, 但像环境变量这种其实只需要在统一的一个地方初始化就可以了, 而这就是 profile.

bashrc

bashrc 也是看名字就知道, 是专门用来给 bash 做初始化的比如用来初始化 bash 的设置, bash 的代码补全, bash 的别名, bash 的颜色. 以此类推也就还会有 shrc, zshrc 这样的文件存在了, 只是 bash 太常用了而已.

拷贝到其他节点:scp Anaconda3-2021.05-Linux-x86_64.sh node2:$PWD

3.启动anaconda并测试

注意: 请将当前连接node1的节点窗口关闭,然后重新打开,否则无法识别

输入 Python启动:

如果大家发现命令行最前面出现了 (base) 信息, 可以通过以下方式, 退出Base环境

vim ~/.bashrc

拉到文件的最后面: 输入 i 进入插入模式

将以下内容添加到最后面:

conda deactivate

4.Anaconda相关组件介绍

Anaconda(水蟒):是一个科学计算软件发行版,集成了大量常用扩展包的环境,包含了 conda、Python 等 180 多个科学计算包及其依赖项,并且支持所有操作系统平台。下载地址:https://www.continuum.io/downloads

  1. 安装包:pip install xxx,conda install xxx
  2. 卸载包:pip uninstall xxx,conda uninstall xxx
  3. 升级包:pip install upgrade xxx,conda update xxx

Jupyter Notebook:启动命令

jupyter notebook

功能如下:

  1. Anaconda自带,无需单独安装
  2. 实时查看运行过程
  3. 基本的web编辑器(本地)
  4. ipynb 文件分享
  5. 可交互式
  6. 记录历史运行结果

修改jupyter显示的文件路径:

通过jupyter notebook --generate-config命令创建配置文件,之后在进入用户文件夹下面查看.jupyter隐藏文件夹,修改其中文件jupyter_notebook_config.py的202行为计算机本地存在的路径。

IPython:

     命令:ipython,其功能如下

     1.Anaconda自带,无需单独安装

     2.Python的交互式命令行 Shell

     3.可交互式

     4.记录历史运行结果

     5.及时验证想法

Spyder:

     命令:spyder,其功能如下

     1.Anaconda自带,无需单独安装

     2.完全免费,适合熟悉Matlab的用户

     3.功能强大,使用简单的图形界面开发环境

下面就Anaconda中的conda命令做详细介绍和配置。

(1)conda命令及pip命令

conda管理数据科学环境,conda和pip类似均为安装、卸载或管理Python第三方包。

conda install  包名    pip install 包名

conda uninstall 包名   pip uninstall 包名

conda install -U 包名   pip install -U 包名

(2) Anaconda设置为国内下载镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urls yes

(3)conda创建虚拟环境

#查看有哪些虚拟环境(沙箱环境)

conda env list

#创建python3.8.8环境

conda create -n py_env python=3.8.8

#激活环境

conda activate py_env

   

#退出环境

conda deactivate

5.PySpark安装(只需要在node1安装即可)

三个节点也是都需要安装pySpark的,本质上只需要在node1安装即可,后续主要基于node1来进行本地测试

6.1(推荐使用的方式)直接安装PySpark(下载好的包)

安装如下:

使用PyPI安装PySpark如下:也可以指定版本安装

pip install pyspark==3.1.2

或者指定清华镜像(对于网络较差的情况):

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark==3.1.2  # 指定清华镜像源

教室网络非常差怎么办?提前下载到本地,然后直接本地安装:

先将pyspark的jar包上传到node1 /export/software

cd /export/software

pip install pyspark-3.1.2.tar.gz

如果要为特定组件安装额外的依赖项,可以按如下方式安装(此步骤暂不执行,后面Sparksql部分会执行):

pip install pyspark[sql]

截图如下:

6.2[通用安装]方式2:创建Conda环境安装PySpark

#从终端创建新的虚拟环境,如下所示

conda create -n pyspark_env python=3.8

#创建虚拟环境后,它应该在 Conda 环境列表下可见,可以使用以下命令查看

conda env list

#现在使用以下命令激活新创建的环境:

source activate pyspark_env

或者

conda activate pyspark_env

如果报错: CommandNotFoundError: Your shell has not been properly configured to use 'conda deactivate'.切换使用 source activate

#您可以在新创建的环境中通过使用PyPI安装PySpark来安装pyspark,例如如下。它将pyspark_env在上面创建的新虚拟环境下安装 PySpark。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark==3.1.2

#或者,可以从 Conda 本身安装 PySpark:

conda install pyspark==3.1.2

6.3[不推荐]方式3:手动下载安装

将spark对应版本下的python目录下的pyspark复制到anaconda的

Library/Python3/site-packages/目录下即可。

请注意,PySpark 需要JAVA_HOME正确设置的Java 8 或更高版本。如果使用 JDK 11,请设置-Dio.netty.tryReflectionSetAccessible=true,Arrow相关功能才可以使用。

扩展:

conda虚拟环境 命令

查看所有环境

conda info --envs

新建虚拟环境

conda create -n myenv python=3.6

删除虚拟环境

conda remove -n myenv --all

激活虚拟环境

conda activate myenv

source activate base

退出虚拟环境

conda deactivate myenv

7.初体验-PySpark shell方式

前面的Spark Shell实际上使用的是Scala交互式Shell,实际上 Spark 也提供了一个用 Python 交互式Shell,即Pyspark。

bin/pyspark --master local[*]

PySpark环境验证计算圆周率

演示: 将spark提供的官方测试python脚本提交到spark的local上,检测spark是否可以正常的运行

[root@node1 bin]#cd /export/server/spark/bin
​
[root@node1 bin]#./spark-submit /export/server/spark/examples/src/main/python/pi.py 100

验证成功截图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/38014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang | Leetcode Golang题解之第199题二叉树的右视图

题目: 题解: /** 102. 二叉树的递归遍历*/ func levelOrder(root *TreeNode) [][]int {arr : [][]int{}depth : 0var order func(root *TreeNode, depth int)order func(root *TreeNode, depth int) {if root nil {return}if len(arr) depth {arr a…

线性代数--行列式1

本篇来自对线性代数第一篇的行列式的一个总结。 主要是行列式中有些关键点和注意事项,便于之后的考研复习使用。 首先,对于普通的二阶和三阶行列式,我们可以直接对其进行拆开,展开。 而对于n阶行列式 其行列式的值等于它的任意…

C++特殊类设计单例模式...

文章目录 请设计一个类,不能被拷贝请设计一个类,只能在堆上创建对象请设计一个类,只能在栈上创建对象请设计一个类,不能被继承请设计一个类,只能创建一个对象(单例模式)单例模式:饿汉模式:懒汉模…

代发考生战报:6月25号 南宁 HCIP-Transmission传输 H31-341考试884分通过

代发考生战报:6月25号 南宁 HCIP-Transmission传输 H31-341考试884分通过 ,今天我和同事两个人去考的,我考试遇到1个新题,他遇到两个新题,客服提供的题库很稳定,全覆盖了,轻松通过,考…

【语言模型】Xinference的部署过程

一、引言 Xinference,也称为Xorbits Inference,是一个性能强大且功能全面的分布式推理框架,专为各种模型的推理而设计。无论是研究者、开发者还是数据科学家,都可以通过Xinference轻松部署自己的模型或内置的前沿开源模型。Xinfe…

pikachu靶场 利用Rce上传一句话木马案例(工具:中国蚁剑)

目录 一、准备靶场,进入RCE 二、测试写入文件 三、使用中国蚁剑 一、准备靶场,进入RCE 我这里用的是pikachu 打开pikachu靶场,选择 RCE > exec "ping" 测试是否存在 Rce 漏洞 因为我们猜测在这个 ping 功能是直接调用系统…

性能评测系列:云架构扩展演进横向对比

原始测评报告 性能评测系列(PT-010):Spring Boot RDS for MySQL,高并发insert 性能评测系列(PT-012):Spring Boot(K8s多实例) RDS for MySQL,高并发insert 性能评测系列&#xff…

一元线性回归-R语言

# # 安装包 # install.packages(ggplot2) # library(ggplot2) Sys.setlocale(category LC_ALL, locale English_United States.1252) # Sys.setlocale("LC_ALL","Chinese") x <- c(18, 20, 22, 24, 26, 28, 30) y <- c(26.86, 28.35, 28.87,28.75,…

期货的杠杆怎么计算?

什么是杠杆系数 杠杆系数是指期货合约价值与保证金之间的比例。它表示投资者只需投入少量资金&#xff0c;就可以控制价值更高的期货合约。杠杆系数越高&#xff0c;投资者的资金放大倍数就越大&#xff0c;但风险也越大。 什么是期货保证金呢&#xff1f; 期货保证金&…

《HelloGitHub》第 99 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、…

VS2019+QT5.12.10: error MSB4036: 未找到“Join”任务。请检查下列各项: 1.) 项目文件中的任务名

1、背景 两个VS2019打开两个相同的项目&#xff0c;一个里可以正常运行&#xff0c; 一个中一直报错&#xff0c;&#xff0c;报的错也是瞎几把报的。。 2、重新安装插件 之前在VS的扩展中在线安装了qt插件&#xff0c; 安装了一半&#xff0c;比较慢&#xff0c;直接强行退出…

传媒行业指哪些?需要过等保吗?

传媒&#xff0c;一个人人都接触的行业。相信大家都听过传媒&#xff0c;但具体传媒行业是指什么&#xff0c;包括哪些&#xff0c;详细很多人都不了解。这不一些人在问&#xff0c;传媒行业指哪些&#xff1f;需要过等保吗&#xff1f;这里跟我们小编一起来讨论讨论吧&#xf…

玩游戏就能学习亚马逊云科技AWS技术并通过热门技术认证考试??

亚马逊AWS限时活动&#xff0c;玩免费游戏Cloud Quest Practitioner送AWS云从业证书考试25%折扣券(价值171元)&#xff0c;玩游戏的同时还能学知识一举两得。Cloud Quest是AWS出的一款3D角色扮演游戏/虚拟城市建造形式的实验课程(游戏画面有点像天际线)&#xff0c;大家通过完成…

【01-02】Mybatis的配置文件与基于XML的使用

1、引入日志 在这里我们引入SLF4J的日志门面&#xff0c;使用logback的具体日志实现&#xff1b;引入相关依赖&#xff1a; <!--日志的依赖--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version&g…

Sorting

本节提供有关在数据网格中对数据进行排序的信息。 GridControl-Grid View Sort Data 默认情况下&#xff0c;最终用户可以按任何列对数据进行排序&#xff0c;但使用MemoExEdit、ImageEdit和PictureEdit在位编辑器的列除外。在运行时&#xff0c;单击列标题一次以升序排列数…

中国电信股份有限公司江西分公司招聘信息 7.5日截止

法律事务管理(南昌) 学历要求 本科及以上学历 岗位职责 1.依据国家法律、法规和相关规章规定,为公司其他部门提供日常法律服务与支持; 2.负责公司各类合同审核工作; 3.负责公司法律文件的起草和法律事务谈判; 4.围绕与公司业务有关的法律问题及法…

最强文生图模型Stable Diffusion 3 Medium 正式开源

Stability AI 宣布 Stable Diffusion 3 Medium 现已开源&#xff0c;是 Stable Diffusion 3 系列中最新、最先进的文本生成图像 AI 模型 —— 官方声称是 “迄今为止最先进的开源模型”&#xff0c;其性能甚至超过了 Midjourney 6。 Stable Diffusion 3 Medium 模型规格参数达到…

获取 url 地址栏 ? 后面的查询字符串,并以键值对形式放到对象里面

写在前面 在前端面试当中&#xff0c;关于 url 相关的问题很常见&#xff0c;而对于 url 请求参数的问题也很常见&#xff0c;大部分以笔试题常见&#xff0c;今天就根据这道面试题一起来看一下。 问题 获取 url 地址栏?后面的查询字符串&#xff0c;并以键值对形式放到对象…

[分布式网络通讯框架]----MprpcController以及Logger类

在calluserservice.cc中&#xff0c;使用UserServiceRpc_Stub类的时候&#xff0c;我们最终调用形式为&#xff1a;stub.Login(&controller,&request,&response,nullptr); 注意到其中有一个controller对象&#xff0c;这个是由MprpcController类定义出来的对象&…

单片机学习(16)--直流电机驱动

直流电机驱动 15.1直流电机驱动基础知识1.直流电机介绍2.电机驱动电路3.PWM介绍 15.2LED呼吸灯和直流电机调速1.LED呼吸灯代码2.直流电机调速&#xff08;1&#xff09;产生PWM的方法&#xff08;2&#xff09;工程目录&#xff08;3&#xff09;main.c函数 15.1直流电机驱动基…