报错信息为:
# 由于我在写这篇文章的时候已经解决了该问题, 所以找不到我的报错信息了, 这是之前在搜索相关问题的时候别人的报错信息
starting org.apache.spark.deploy.master.Master, logging to /usr/local/spark/logs/spark-root-org.apache.spark.deploy.master.Master-1-master.out
localhost: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/spark/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-master.out
localhost: failed to launch: nice -n 0 /usr/local/spark/bin/spark-class org.apache.spark.deploy.worker.Worker --webui-port 8081 spark://master:7077
localhost: JAVA_HOME is not set
localhost: full log in /usr/local/spark/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-master.out
解决方案1: 在每个程序中手动设置这些环境变量
优点: 简单, 不需要修改配置
缺点: 每次运行任何spark程序的时候都需要添加, 没有办法做到一劳永逸
import os
os.environ['SPARK_HOME'] = '/export/server/spark'
os.environ['PYSPARK_PYTHON'] = '/root/anaconda3/bin/python3'
os.environ['PYSPARK_DRIVER_PYTHON'] = '/root/anaconda3/bin/python3'
os.environ['JAVA_HOME'] = '/export/server/jdk1.8.0_241
这种方法虽然不需要任何配置, 但是每次写程序的时候都要去之前的程序中找到这么一大串代码贴到新的程序中, 想想都是比较折磨的, 这里问了问chatGPT, 又参考了网上的一些解决方案, 最终总结出第二种解决方案.
解决方案2: 在linux虚拟机中配置.bashrc
或 .bash_profile
文件
优点: 配置一次之后就可以不需要管这个问题了
缺点: 配置起来相对较为麻烦
# 1. 修改 `.bashrc` 或 `.bash_profile`
vim /root/.bashrc
# 或者
vim /root/.bash_profile
# 2. 将光标移至最后一行并添加以下内容, 保存并退出
export SPARK_HOME=/export/server/spark
export PYSPARK_PYTHON=/root/anaconda3/bin/python3
export PYSPARK_DRIVER_PYTHON=/root/anaconda3/bin/python3
export JAVA_HOME=/export/server/jdk1.8.0_241
# 3. 更新配置
source ~/.bashrc
至此, 关于JAVA_HOME
未找到的问题就可以解决了, 可以按照个人需求来决定使用哪一种方案.