目录
1. 环境准备
1.1 安装要求
- 操作系统:Linux(推荐)、Windows或MacOS
- Python:Python 3.6或以上
- Java环境:JDK 1.8或以上
1.2 检查Python和Java环境
Spark依赖于Java环境,请先确认是否已安装JDK。可通过以下命令检查:
java -version
python3 --version
若未安装,请根据系统选择安装JDK 8以上的版本。安装完成后,设置JAVA_HOME环境变量。
export JAVA_HOME=/path/to/jdk export PATH=$JAVA_HOME/bin:$PATH
通过Anaconda安装 ,因为这个软件不仅有python还有其他的功能,比单纯安装python功能要强大。
# 上传
cd /opt/modules
# 添加执行权限
chmod u+x Anaconda3-2021.05-Linux-x86_64.sh
# 执行
sh ./Anaconda3-2021.05-Linux-x86_64.sh
# 过程
#第一次:【直接回车,然后按q】
Please, press ENTER to continue
>>>
#第二次:【输入yes】
Do you accept the license terms? [yes|no]
[no] >>> yes
#第三次:【输入解压路径:/opt/installs/anaconda3】
[/root/anaconda3] >>> /opt/installs/anaconda3
#第四次:【输入yes,是否在用户的.bashrc文件中初始化
Anaconda3的相关内容】
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>> yes
更新环境变量:
# 刷新环境变量
source /root/.bashrc
# 激活虚拟环境,如果需要关闭就使用:conda deactivate
conda activate
配置环境变量并再次刷新:
# 编辑环境变量
vi /etc/profile
# 添加以下内容
# Anaconda Home
export ANACONDA_HOME=/opt/installs/anaconda3
export PATH=$PATH:$ANACONDA_HOME/bin
创建软连接:
# 创建软连接
ln -s /opt/installs/anaconda3/bin/python3 /usr/bin/python3
# 验证
echo $ANACONDA_HOME
2. 下载并解压Spark
2.1 下载Spark
前往 Apache Spark官网 下载Spark安装包。选择预编译好的版本(如“Pre-built for Apache Hadoop 3.2 and later”),并下载 .tgz
文件。
2.2 解压安装包
使用以下命令解压下载的Spark安装包:
# 解压
cd /opt/modules
tar -zxf spark-3.1.2-bin-hadoop3.2.tgz -C /opt/installs
# 重命名
cd /opt/installs
mv spark-3.1.2-bin-hadoop3.2 spark-local
# 创建软链接
ln -s spark-local spark
3. 配置环境变量
编辑~/.bashrc
或/etc/profile
文件,加入以下环境变量:
export SPARK_HOME=/opt/installs/spark
export PATH=$SPARK_HOME/bin:$PATH
更新环境变量:
source /etc/profile
4. 配置Spark
单机模式安装相对简单,不需要配置Master和Worker。默认情况下,Spark会自动启用单机模式运行。您可以根据需求修改conf/spark-env.sh
或conf/spark-defaults.conf
配置文件。
5. 启动Spark Shell
Spark安装完成后,可以启动Spark Shell来测试环境:
/opt/installs/spark/bin/pyspark --master local[2]
若成功启动,将看到Spark Shell的命令行提示,表示安装成功。
6. 运行测试
在Spark Shell中可以输入以下代码进行简单测试:
map算子实现分布式转换
需求:将一个包含 1~ 10 共10个元素的列表,使用Spark实现分布式处理,将每个元素的平方输出
运行后应输出2, 4, 6, 8, 10
,说明Spark单机模式安装成功。
# 定义一个列表
list1 = [1,2,3,4,5,6,7,8,9,10]
# 将列表通过SparkContext将数据转换为一个分布式集合RDD
inputRdd = sc.parallelize(list1)
# 将RDD中每个分区的数据进行处理
rsRdd = inputRdd.map(lambda x : x**2)
# 将结果RDD的每个元素进行输出
rsRdd.foreach(lambda x : print(x))
7. 关闭Spark Shell
在测试完成后,可以通过以下命令退出Spark Shell:
quit
8. 常见问题
8.1 兼容性问题
若出现Python和Java版本兼容性问题,可尝试降低Java或Spark版本,确保它们相互兼容。
8.2 环境变量配置
确认JAVA_HOME
和SPARK_HOME
等环境变量正确配置,并已通过source /etc/profile
生效。
总结
至此,您已经成功在单机模式下安装并运行了Spark。这种模式适合小规模数据处理和学习实验。对于更高的性能需求,建议使用集群模式。