PySpark环境搭建与Spark伪分布式集群部署指南(5.6)

一、PySpark环境搭建与测试

1. PySpark交互式环境

PySpark提供了交互式Python shell,方便开发者快速测试和验证Spark功能。

安装与使用步骤:

# 安装指定版本的PySpark和py4j
sudo pip install pyspark==2.4.8 py4j==0.10.7

# 启动Python交互环境
python

# 在Python交互环境中
>>> from pyspark import SparkContext
>>> sc = SparkContext('local[2]','pyspark lib')  # 如果sc创建错误,输入sc.stop()
>>> rdd = sc.parallelize([1,2,3,4,5])
>>> datas = rdd.collect()
>>> print(datas)  # 输出: [1, 2, 3, 4, 5]
>>> rdd.collect()  # 或使用 rdd.foreach(print)

2. Jupyter Notebook环境

Jupyter Notebook提供了更友好的交互式开发体验。

安装与配置:

# 安装Jupyter和findspark
sudo pip install jupyter==1.0.0
sudo pip install findspark

# 启动Jupyter Notebook
jupyter notebook

在Notebook中使用PySpark:

import findspark
findspark.init()  # 初始化Spark环境
import pyspark
from pyspark import SparkContext

sc = SparkContext('local[1]','pyspark lib')
rdd = sc.parallelize([1,2,3,4,5])
rdd.collect()  # 收集所有数据
rdd.first()   # 获取第一个元素
rdd.take(3)   # 获取前3个元素

3. PyCharm开发环境

PyCharm是专业的Python IDE,适合大型Spark项目开发。

安装与配置:

# 解压安装PyCharm
cd /usr/local
sudo tar -zxf ~/Downloads/pycharm-community-2022.3.1.tar.gz
cd pycharm-community-2022.3.1
bin/pycharm.sh

PyCharm中使用Spark:

from pyspark import SparkContext
from pyspark.sql import SparkSession

# 创建Spark会话
spark = SparkSession.builder.master("local[1]") \
        .appName('SparkExample') \
        .getOrCreate()

sc = spark.sparkContext  # 获取Spark上下文
rdd = sc.parallelize(range(1,5))
print(rdd.collect())

二、Spark伪分布式集群搭建

1. 修改主机名

# 查看当前主机名
hostname  # 输出: ubuntu

# 修改主机名为vm01
sudo hostnamectl set-hostname vm01

# 验证修改
hostname  # 输出: vm01

2. 修改hosts文件

sudo vi /etc/hosts
# 添加以下内容
127.0.0.1       localhost
127.0.1.1       vm01

3. 配置Spark环境

cd /usr/local/spark/conf

# 配置spark-env.sh
vi spark-env.sh
# 添加以下内容
export JAVA_HOME=/usr/local/jdk
export SPARK_MASTER_HOST=vm01

# 配置slaves文件
cp slaves.template slaves
vi slaves
# 将localhost修改为vm01

4. 启动Spark集群

# 启动集群
cd /usr/local/spark
sbin/start-all.sh

# 检查进程
jps
# 应看到以下关键进程:
# 14101 Worker
# 13931 Master

# 测试集群
cd examples/src/main/python
spark-submit --master spark://vm01:7077 pi.py

# 浏览器访问: http://vm01:8080 查看集群状态

5. 配置历史服务器

cd /usr/local/spark/conf
cp spark-defaults.conf.template spark-defaults.conf
vi spark-defaults.conf
# 添加以下配置
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://localhost:9000/spark-eventlog
spark.history.fs.logDirectory    hdfs://localhost:9000/spark-eventlog
spark.yarn.historyServer.address=vm01:18080
spark.history.ui.port=18080

# 创建HDFS目录
hdfs dfs -mkdir /spark-eventlog

# 重启集群
sbin/stop-all.sh
sbin/start-all.sh
sbin/start-history-server.sh

# 验证历史服务器
jps  # 应看到HistoryServer进程
# 浏览器访问: http://vm01:18080

三、Spark应用部署模式

1. Local模式

pyspark --master local
jps  # 会看到SparkSubmit进程

2. Standalone模式

# 停止YARN服务
/usr/local/hadoop/sbin/stop-yarn.sh

# 停止历史服务器
/usr/local/spark/sbin/stop-history-server.sh

# 启动Standalone集群
/usr/local/spark/sbin/start-all.sh

jps  # 应看到Master和Worker进程

3. Spark on YARN模式

# 停止Standalone服务
/usr/local/spark/sbin/stop-all.sh

# 启动YARN服务
/usr/local/hadoop/sbin/start-all.sh

jps  # 应看到ResourceManager和NodeManager进程

总结

本文详细介绍了PySpark环境的三种搭建方式(交互式shell、Jupyter Notebook和PyCharm)以及Spark伪分布式集群的部署步骤。通过修改主机名、配置Spark环境文件和启动相关服务,我们成功搭建了一个Spark伪分布式集群,并验证了Local、Standalone和YARN三种部署模式。

在实际工作中,可以根据项目需求选择合适的开发环境和部署模式。对于学习和测试,Local模式最为简单;生产环境则推荐使用Standalone或YARN模式,特别是当需要与Hadoop生态系统集成时,YARN模式是更好的选择。

配置历史服务器可以帮助开发者监控和分析Spark应用的运行情况,对于性能调优和故障排查非常有价值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值