1. 环境准备与基础软件安装
在CentOS8上搭建伪分布式Spark环境,首先需要准备好基础运行环境。我建议使用最小化安装的CentOS8系统,这样可以避免不必要的软件冲突。记得先执行sudo dnf update -y更新系统,这个步骤我遇到过好几次因为系统未更新导致依赖库版本不匹配的问题。
JDK的安装是个关键步骤。实测下来,Spark 3.x版本对Java8和Java11的支持最稳定。我习惯把JDK安装在/opt目录下,这里分享一个实用技巧:解压JDK包时使用-C参数直接指定目标路径,可以避免后续移动文件的麻烦。具体操作如下:
bash复制sudo tar -zxvf jdk-8u381-linux-x64.tar.gz -C /opt/
配置环境变量时有个容易踩的坑:很多人会忘记在PATH变量中包含$JAVA_HOME/bin。我曾经花了两个小时排查"java命令找不到"的问题,最后发现就是这个原因。正确的配置应该是这样的:
bash复制export JAVA_HOME=/opt/jdk1.8.0_381
export PATH=$PATH:$JAVA_HOME/bin
验证Java安装是否成功时,除了java -version,我还会用javac -version确认编译环境也配置正确。这点在后续Spark编译自定义函数时会很重要。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Hadoop伪分布式环境配置
虽然Spark可以独立运行,但配置Hadoop伪分布式环境能让Spark更好地利用HDFS存储系统。我推荐使用Hadoop 3.3.x版本,它与Spark 3.4.x的兼容性最好。解压Hadoop后,需要特别注意目录权限问题:
bash复制sudo chown -R username:username /opt/hadoop-3.3.6
伪分布式模式的核心配置文件是etc/hadoop/core-site.xml和hdfs-site.xml。这里有个实用技巧:在core-site.xml中,我把临时目录设为/home/username/tmp而不是默认的/tmp,这样可以避免权限问题:
xml复制<property>
<name>hadoop.tmp.dir</name>
<value
