Spark学习(2)-Spark环境搭建-Local

1 基本原理

本质:启动一个JVM Process进程(一个进程里面有多个线程),执行任务Task。

  • Local模式可以限制模拟Spark集群环境的线程数量, 即Local[N]Local[*]
  • 其中N代表可以使用N个线程,每个线程拥有一个cpu core。如果不指定N,则默认是1个线程(该线程有1个core)。 通常Cpu有几个Core,就指定几个线程,最大化利用计算能力。
  • 如果是local[*],则代表按照Cpu最多的Cores设置线程数。

Local 下的角色分布:

  • 资源管理:
    Master:Local进程本身
    Worker:Local进程本身
  • 任务执行:
    Driver:Local进程本身
    Executor:不存在,没有独立的Executor角色, 由Local进程(也就是Driver)内的线程提供计算能力

PS: Driver也算一种特殊的Executor, 只不过多数时候, 我们将Executor当做纯Worker对待, 这样和Driver好区分(一类是管理 一类是工人)

注意: Local模式只能运行一个Spark程序, 如果执行多个Spark程序, 那就是由多个相互独立的Local进程在执行。

2 搭建

2.1 下载地址

3.3.0 下载链接

2.2 条件

  • Python推荐3.8
  • JDK 1.8

2.3 Anaconda On Linux 安装

2.4 解压

解压下载的Spark安装包

`tar -zxvf spark-3.2.0-bin-hadoop3.2.tgz -C /export/server/`

2.5 环境变量

配置Spark由如下5个环境变量需要设置:

  • SPARK_HOME: 表示Spark安装路径在哪里
  • PYSPARK_PYTHON: 表示Spark想运行Python程序, 那么去哪里找python执行器
  • JAVA_HOME: 告知Spark Java在哪里
  • HADOOP_CONF_DIR: 告知Spark Hadoop的配置文件在哪里
  • HADOOP_HOME: 告知Spark Hadoop安装在哪里

这5个环境变量 都需要配置在: /etc/profile中:
在这里插入图片描述
PYSPARK_PYTHON和 JAVA_HOME 需要同样配置在: /root/.bashrc中:
在这里插入图片描述

2.6 设置软链接

ln -s /export/server/spark-3.2.0-bin-hadoop3.2 /export/server/spark

在这里插入图片描述
在这里插入图片描述

2.7 测试

bin/pyspark

bin/pyspark 程序, 可以提供一个 交互式的 Python解释器环境, 在这里面可以写普通python代码, 以及spark代码。

在这里插入图片描述

如图:
在这里插入图片描述
在这个环境内, 可以运行spark代码

图中的: parallelizemap 都是spark提供的API
sc.parallelize([1,2,3,4,5]).map(lambda x: x + 1).collect()

2.8 WEB UI (4040)

Spark程序在运行的时候, 会绑定到机器的4040端口上,如果4040端口被占用, 会顺延到4041 … 4042…
在这里插入图片描述
4040端口是一个WEBUI端口, 可以在浏览器内打开:
输入:服务器ip:4040 即可打开:
在这里插入图片描述
打开监控页面后, 可以发现 在程序内仅有一个Driver,因为我们是Local模式, Driver即管理 又 干活。
同时, 输入jps:
在这里插入图片描述
可以看到local模式下的唯一进程存在,这个进程 即是master也是worker。

2.9 bin/spark-shell

同样是一个解释器环境, 和bin/pyspark不同的是, 这个解释器环境 运行的不是python代码, 而是scala程序代码。

scala> sc.parallelize(Array(1,2,3,4,5)).map(x=> x + 1).collect()
res0: Array[Int] = Array(2, 3, 4, 5, 6)

这个是用于scala语言的解释器环境。

2.10 bin/spark-submit (PI)

作用: 提交指定的Spark代码到Spark环境中运行。
使用方法:

# 语法
bin/spark-submit [可选的一些选项] jar包或者python代码的路径 [代码的参数]

# 示例
bin/spark-submit /export/server/spark/examples/src/main/python/pi.py 10
# 此案例 运行Spark官方所提供的示例代码 来计算圆周率值.  后面的10 是主函数接受的参数, 数字越高, 计算圆周率越准确.

对比
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术闲聊DD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值