PySpark安装
PySpark Vs Spark
Python作为Spark的主流开发语言
PySpark安装
1-如何安装PySpark?
Linux的Anaconda安装
2-如何安装anconda?
3-Anaconda有很多软件
4-Anaconda中可以利用conda构建虚拟环境
5-如何查看conda创建的虚拟环境?
PySpark安装
Jupyter环境设置
监控页面
运行圆周率
回顾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
蒙特卡洛方法求解PI
采用的扔飞镖的方法,在极限的情况下,可以用落入到圆内的次数除以落入正方形内的次数
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 架构
角色分析
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
安装过程
测试
WebUi
(1)Spark-shell
bin/spark-shell --master spark://node1:7077
(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
(3)spark-submit
#基于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 应用架构
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 都正确执行或者超过执行次数的限制仍然没有执行成功时停止;
高可用HA
基于Zookeeper实现HA
测试运行
spark-shell
pyspark
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
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有