Python大数据之PySpark(二)PySpark安装

这篇具有很好参考价值的文章主要介绍了Python大数据之PySpark(二)PySpark安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PySpark安装

  • 1-明确PyPi库,Python Package Index 所有的Python包都从这里下载,包括pyspark

支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • 2-为什么PySpark逐渐成为主流?
  • http://spark.apache.org/releases/spark-release-3-0-0.html
  • Python is now the most widely used language on Spark. PySpark has more than 5 million monthly downloads on PyPI, the Python Package Index.
  • 记住如果安装特定的版本需要使用指定版本,pip install pyspark2.4.5
  • 本地安装使用pip install pyspark 默认安装最新版

PySpark Vs Spark

Python作为Spark的主流开发语言

PySpark安装

1-如何安装PySpark?

  • 首先安装anconda,基于anaconda安装pyspark
  • anaconda是数据科学环境,如果安装了anaconda不需要安装python了,已经集成了180多个数据科学工具
  • 注意:anaconda类似于cdh,可以解决安装包的版本依赖的问题

Linux的Anaconda安装

2-如何安装anconda?

  • 去anaconda的官网下载linux系统需要文件 Anaconda3-2021.05-Linux-x86_64.sh
  • 上传到linux中,执行安装sh Anaconda3-2021.05-Linux-x86_64.sh或bash Anaconda3-2021.05-Linux-x86_64.sh
  • 直接Enter下一步到底,完成
  • 配置环境变量,参考课件

3-Anaconda有很多软件

  • IPython 交互式Python,比原生的Python在代码补全,关键词高亮方面都有明显优势

  • jupyter notebook:以Web应用启动的交互式编写代码交互式平台(web平台)

  • 180多个工具包

  • conda和pip什么区别?

  • conda和pip都是安装python package

  • conda list可以展示出package的版本信息

  • conda 可以创建独立的沙箱环境,避免版本冲突,能够做到环境独立

  • conda create -n pyspark_env python==3.8.8

4-Anaconda中可以利用conda构建虚拟环境

  • 这里提供了多种方式安装pyspark
  • (掌握)第一种:直接安装 pip install pyspark
  • (掌握)第二种:使用虚拟环境安装pyspark_env中安装,pip install pyspark
  • 第三种:在PyPi上下载下来对应包执行安装

5-如何查看conda创建的虚拟环境?

  • conda env list
  • conda create -n pyspark_env python==3.8.8
  • pip install pyspark

PySpark安装

  • 1-使用base的环境安装
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言
  • 2-使用pyspark_env方式安装
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言
  • 查看启动结果

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • 简单的代码演示

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • 在虚拟环境下的补充

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • webui

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • 注意:

    • 1-1个Spark的Applicaition下面有很多Job
    • 2-1个Job下面有很多Stage

Jupyter环境设置

监控页面

  • 4040的端口
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

运行圆周率

  • 回顾Hadoop中可以使用

  • hadoop jar xxxx.jar 100

  • yarn jar xxxx.jar 1000

  • 跑的mr的任务

  • Spark中也有对应的提交任务的代码

  • spark-submit 提交圆周率的计算代码 */examples/src/main/python/pi.py*

  • 提交的命令:

bin/spark-submit --master local[2] /export/server/spark/examples/src/main/python/pi.py 10
或者

# 基于蒙特卡洛方法求解的Pi,需要参数10,或100代表的次数
bin/spark-submit \
--master local[2] \
/export/server/spark/examples/src/main/python/pi.py  \
10
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • 蒙特卡洛方法求解PI

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • 采用的扔飞镖的方法,在极限的情况下,可以用落入到圆内的次数除以落入正方形内的次数

  • hadoop jar /export/server/hadoop-3.3.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar pi 10 10

  • hadoop提交任务中使用 第一个10代表是map任务,第二10代表每个map任务投掷的次数

  • spark-submit的提交的参数10的含义是投掷的次数

  • 简单的py代码

def pi(times): # times的意思是落入到正方形的次数
x_time = 0
for i in range(times):
# 有多少落入到圆内
x = random.random()
y = random.random()
if x * x + y * y <= 1:
x_time += 1
return x_time / times * 4.0
print(pi(10000000))#3.1410412

环境搭建-Standalone

  • 完成了Spark的local环境搭建
  • 完成了Spark的PySpark的local环境搭建
  • 基于PySpark完成spark-submit的任务提交

Standalone 架构

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言
  • 如果修改配置,如何修改?
  • 1-设定谁是主节点,谁是从节点
    • node1是主节点,node1,node2,node3是从节点
  • 2-需要在配置文件中声明,
    • 那个节点是主节点,主节点的主机名和端口号(通信)
    • 那个节点是从节点,从节点的主机名和端口号
  • 3-现象:进入到spark-shell中或pyspark中,会开启4040的端口webui展示,但是一旦交互式命令行退出了,wenui无法访问了,需要具备Spark的历史日志服务器可以查看历史提交的任务

角色分析

Master角色,管理节点, 启动一个名为Master的进程, *Master进程有且仅有1个*(HA模式除外)

Worker角色, 干活节点,启动一个名为 Worker的进程., Worker进程****最少1个, 最多不限制****

Master进程负责资源的管理, 并在有程序运行时, 为当前程序创建管理者Driver

Driver:驱动器,使用SparkCOntext申请资源的称之为Driver,告诉任务需要多少cpu或内存

Worker进程负责干活, 向Master汇报状态, 并听从程序Driver的安排,创建Executor干活

在Worker中有Executor,Executor真正执行干活

集群规划

谁是Master 谁是Worker

node1:master/worker

node2:slave/worker

node3:slave/worker

为每台机器安装Python3

安装过程

  • 1-配置文件概述
  • spark-env.sh 配置主节点和从节点和历史日志服务器
  • workers 从节点列表
  • spark-default.conf spark框架启动默认的配置,这里可以将历史日志服务器是否开启,是否有压缩等写入该配置文件
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言
  • 2-安装过程
  • 2-1 修改workers的从节点配置文件
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言
  • 2-2 修改spark-env.sh配置文件
  • hdfs dfs -mkdir -p /sparklog/
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言
  • 2-3 修改spark-default.conf配置文件
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言
  • 2-4 配置日志显示级别(省略)

测试

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • WebUi

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • (1)Spark-shell

  • bin/spark-shell --master spark://node1:7077

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • (2)pyspark

  • 前提:需要在三台机器上都需要安装Anaconda,并且安装PySpark3.1.2的包

  • 步骤:

  • 如果使用crt上传文件一般使用rz命令,yum install -y lrzsz

  • 1-在3台虚拟机上准备anconda

  • 2-安装anaconda,sh anaconda.sh

  • 3-安装pyspark,这里注意环境变量不一定配置,直接进去文件夹也可以

  • 4-测试

  • 调用:bin/pyspark --master spark://node1:7077

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • (3)spark-submit

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • 
    

#基于Standalone的脚本
#driver申请作业的资源,会向--master集群资源管理器申请
#执行计算的过程在worker中,一个worker有很多executor(进程),一个executor下面有很多task(线程)
bin/spark-submit \
--master spark://node1:7077 \
--driver-memory 512m \
--executor-memory 512m \
--conf "spark.pyspark.driver.python=/root/anaconda3/bin/python3" \
--conf "spark.pyspark.python=/root/anaconda3/bin/python3" \
/export/server/spark/examples/src/main/python/pi.py  \
10
* 完毕

Spark 应用架构

  • 两个基础driver和executor

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言
  • 用户程序从最开始的提交到最终的计算执行,需要经历以下几个阶段:

1)、用户程序创建 SparkContext 时,新创建的 SparkContext 实例会连接到 ClusterManager。 Cluster Manager 会根据用户提交时设置的 CPU 和内存等信息为本次提交分配计算资源,启动 Executor。

2)、Driver会将用户程序划分为不同的执行阶段Stage,每个执行阶段Stage由一组完全相同Task组成,这些Task分别作用于待处理数据的不同分区。在阶段划分完成和Task创建后, Driver会向Executor发送 Task;

3)、Executor在接收到Task后,会下载Task的运行时依赖,在准备好Task的执行环境后,会开始执行Task,并且将Task的运行状态汇报给Driver;

4)、Driver会根据收到的Task的运行状态来处理不同的状态更新。 Task分为两种:一种是Shuffle Map Task,它实现数据的重新洗牌,洗牌的结果保存到Executor 所在节点的文件系统中;另外一种是Result Task,它负责生成结果数据;

5)、Driver 会不断地调用Task,将Task发送到Executor执行,在所有的Task 都正确执行或者超过执行次数的限制仍然没有执行成功时停止;

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

环境搭建StandaloneHA

  • 回顾:Spark的Standalone独立部署模式,采用Master和Worker结构进行申请资源和执行计算
  • 问题:如果Master出问题了,整个Spark集群无法工作,如何处理?
  • 解决:涉及主备,需要一个主节点,需要一个备用节点,通过ZK选举,如果主节点宕机备份节点可以接替上主节点继续执行计算

高可用HA

  • 架构图
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

基于Zookeeper实现HA

  • 如何实现HA的配置?
  • 1-需要修改spark-env.sh中的master的ip或host,注释掉,因为依靠zk来选择
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言
  • 2-开启zk,zkServer.sh status
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言
  • 3-需要在原来的基础上启动node2的master的命令 start-master.sh
  • 4-重启Spark的Standalone集群,然后执行任务
  • sbin/stop-all.sh
  • sbin/start-all.sh
  • webUI
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

测试运行

spark-shell

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

pyspark

  • bin/pyspark --master spark://node1:7077,node2:7077
  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

spark-submit

#基于StandaloneHA的脚本
bin/spark-submit
–master spark://node1:7077,node2:7077
–conf “spark.pyspark.driver.python=/root/anaconda3/bin/python3”
–conf “spark.pyspark.python=/root/anaconda3/bin/python3”
/export/server/spark/examples/src/main/python/pi.py
10

  • 测试:目前node1是主节点,node2是standby备用主节点,这时候将node1 的master进程干掉,然后看node2的master是否能够接替node1的master的作用,成为active的master

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • 支持 依赖项 'python:pyspark' 的插件 spark 当前尚未安装。,# PySpark,python大数据,python,大数据,开发语言

  • 如果一个master节点宕机另外一个master启动需要1-2分钟

  • 完毕

后记

📢博客主页:https://manor.blog.csdn.net

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 Maynor 原创,首发于 CSDN博客🙉
📢感觉这辈子,最深情绵长的注视,都给了手机⭐
📢专栏持续更新,欢迎订阅:https://blog.csdn.net/xianyu120/category_12453356.html文章来源地址https://www.toymoban.com/news/detail-766970.html

到了这里,关于Python大数据之PySpark(二)PySpark安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python大数据处理利器之Pyspark详解

    在现代信息时代,数据是最宝贵的财富之一,如何处理和分析这些数据成为了关键。Python在数据处理方面表现得尤为突出。而 pyspark 作为一个强大的分布式计算框架,为大数据处理提供了一种高效的解决方案。本文将详细介绍pyspark的基本概念和使用方法,并给出实际案例。

    2024年02月10日
    浏览(48)
  • Python大数据之PySpark(七)SparkCore案例

    PySpark实现SouGou统计分析 jieba分词: pip install jieba 从哪里下载pypi 三种分词模式 精确模式,试图将句子最精确地切开,适合文本分析;默认的方式 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 搜索引擎模式,在精确模式的基础上,对

    2024年02月08日
    浏览(37)
  • Python大数据之PySpark(五)RDD详解

    为什么需要RDD? 首先Spark的提出为了解决MR的计算问题,诸如说迭代式计算,比如:机器学习或图计算 希望能够提出一套基于内存的迭代式数据结构,引入RDD弹性分布式数据集,如下图 为什么RDD是可以容错? RDD依靠于依赖关系dependency relationship reduceByKeyRDD-----mapRDD-----flatMapRD

    2024年02月06日
    浏览(45)
  • Python数据攻略-Hadoop集群中PySpark数据处理

    Hadoop是一个开源的分布式存储和计算框架。它让我们可以在多台机器上存储大量的数据,并且进行高效的数据处理。简而言之,Hadoop就像一个巨大的仓库,可以存放海量的数据,并且有高效的工具来处理这些数据。

    2024年02月07日
    浏览(46)
  • Python大数据之PySpark(四)SparkBase&Core

    学习目标 掌握SparkOnYarn搭建 掌握RDD的基础创建及相关算子操作 了解PySpark的架构及角色 Yarn 资源调度框架,提供如何基于RM,NM,Continer资源调度 Yarn可以替换 Standalone结构中Master和Worker 来使用RM和NM来申请资源 SparkOnYarn本质 Spark计算任务通过Yarn申请资源,SparkOnYarn 将pyspark文件

    2024年02月06日
    浏览(42)
  • Python大数据之PySpark(六)RDD的操作

    函数分类 *Transformation操作只是建立计算关系,而Action 操作才是实际的执行者* 。 Transformation算子 转换算子 操作之间不算的转换,如果想看到结果通过action算子触发 Action算子 行动算子 触发Job的执行,能够看到结果信息 Transformation函数 值类型valueType map flatMap filter mapValue 双值

    2024年02月04日
    浏览(43)
  • Python 与 PySpark数据分析实战指南:解锁数据洞见

    💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】 🤟 基于Web端打造的:👉轻量化工具创作平台 💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 数据分析是当今信息时代中至关重要的技能之一。Python和PySpark作为强大的工具,提供了丰富的库和功能,

    2024年02月03日
    浏览(51)
  • Python大数据之PySpark(三)使用Python语言开发Spark程序代码

    Spark Standalone的PySpark的搭建----bin/pyspark --master spark://node1:7077 Spark StandaloneHA的搭建—Master的单点故障(node1,node2),zk的leader选举机制,1-2min还原 【scala版本的交互式界面】bin/spark-shell --master xxx 【python版本交互式界面】bin/pyspark --master xxx 【提交任务】bin/spark-submit --master xxxx 【学

    2024年01月17日
    浏览(54)
  • CDH集群离线配置python3环境,并安装pyhive、impyla、pyspark

    背景: 项目需要对数仓千万级数据进行分析、算法建模。因数据安全,数据无法大批量导出,需在集群内进行分析建模,但CDH集群未安装python3 环境,需在无网情况下离线配置python3环境及一系列第三方库。 采取策略,使用外部联网linux环境创建python3虚拟环境,然后整体迁移

    2024年02月11日
    浏览(49)
  • Python与大数据:Hadoop、Spark和Pyspark的应用和数据处理技巧

      在当今的数字时代,数据成为了无处不在的关键资源。大数据的崛起为企业提供了无限的机遇,同时也带来了前所未有的挑战。为了有效地处理和分析大规模数据集,必须依靠强大的工具和技术。在本文中,我们将探讨Python在大数据领域的应用,重点介绍Hadoop、Spark和Pysp

    2024年02月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包