Spark 单机模式安装步骤
Spark 安装
-
上传安装包 :将下载好的 Spark 安装包(如 spark-3.3.0-bin-hadoop3.tgz)通过 FTP 工具或 scp 命令上传至 Linux 服务器的指定目录,例如
/opt/software
。 -
解压安装包 :使用
tar -zxvf spark-3.3.0-bin-hadoop3.tgz -C /opt/installs/
命令将安装包解压到/opt/installs
目录。 -
重命名 :为了方便后续操作,将解压后的文件夹重命名,执行
mv /opt/installs/spark-3.3.0-bin-hadoop3 /opt/installs/spark
。 -
创建软链接 :通过
ln -s /opt/installs/spark /opt/spark
创建软链接,简化路径访问。 -
配置环境变量 :编辑
/etc/profile
文件,添加如下内容:export SPARK_HOME=/opt/spark export PATH=$PATH:$SPARK_HOME/bin
保存后执行
source /etc/profile
刷新环境变量。
Anaconda 安装(Python 环境)
Anaconda 不仅包含 Python,还具备资源环境隔离功能,方便不同版本环境的测试开发,是 Spark 的理想 Python 环境。
-
下载与上传 :从Anaconda 官网 archive 页面下载合适版本(如 Anaconda3-2022.10-Linux-x86_64.sh),上传至服务器
/opt/software
目录。 -
安装 Anaconda :执行
bash /opt/software/Anaconda3-2022.10-Linux-x86_64.sh
,按照提示完成安装,建议安装在/opt/installs/anaconda3
目录。 -
环境变量配置 :编辑
/etc/profile
,添加:export ANACONDA_HOME=/opt/installs/anaconda3 export PATH=$PATH:$ANACONDA_HOME/bin
执行
source /etc/profile
刷新,再通过ln -s /opt/installs/anaconda3/bin/python3 /usr/bin/python3
创建软链接,确保python3
命令可用。 -
环境管理命令:
- 进入环境:
conda activate 环境名
- 退出环境:
conda deactivate
- 进入环境:
Spark 测试使用
Spark Python Shell 是交互式学习工具,通过pyspark
命令启动,可实时编写代码并查看结果。
案例一:map 算子实现分布式转换
需求:将 1~10 的列表中每个元素平方后输出。
在 Spark Python Shell 中执行:
# 创建包含1~10的RDD
rdd = sc.parallelize(range(1, 11))
# 使用map算子计算平方
square_rdd = rdd.map(lambda x: x * x)
# 输出结果
square_rdd.collect()
执行后将得到[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
,展示了 Spark 分布式处理元素的能力。
案例二:WordCount 词频统计
以/home/data.txt
为数据源,统计每个单词出现的次数,步骤如下:
-
读取数据:
fileRdd = sc.textFile("/home/data.txt") print("总行数:", fileRdd.count()) print("前3行:", fileRdd.take(3))
-
过滤空行:
filterRdd = fileRdd.filter(lambda line: len(line.strip()) > 0) print("过滤后行数:", filterRdd.count())
-
拆分单词:
wordRdd = filterRdd.flatMap(lambda line: line.strip().split(" ")) print("单词总数:", wordRdd.count())
-
生成键值对:
tupleRdd = wordRdd.map(lambda word: (word, 1))
-
聚合统计:
rsRdd = tupleRdd.reduceByKey(lambda tmp, item: tmp + item)
-
结果输出与保存:
# 打印结果 rsRdd.foreach(lambda kv: print(kv)) # 保存到本地 rsRdd.saveAsTextFile("/home/wcoutput")
案例三:计算 PI 值
通过 Spark 提交脚本计算圆周率,执行:
/opt/installs/spark/bin/spark-submit --master local[2] /opt/installs/spark/examples/src/main/python/pi.py 100
其中--master local[2]
指定使用 2 个核心,100
是采样次数,结果会接近 3.14。