Linux上Spark安装冲突排查与解决
一、先理清常见冲突类型
PYTHONHOME/PYTHONPATH 干扰,或未把 pyspark 加入 Python 路径。二、标准化安装与环境隔离
export SPARK_HOME=/opt/spark-<version>export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATHsource ~/.bashrc 使配置生效。without-hadoop 并在 spark-env.sh 中指定 Hadoop 类路径),避免混用多版本二进制。start-all.sh/stop-all.sh 重命名(如 start-all-hadoop.sh),或调整 PATH 顺序,使 which start-all.sh 指向期望的发行版。spark-shell --version、echo $SPARK_HOME、which spark-shell,确保指向同一套安装。三、版本兼容性与依赖冲突处理
JAVA_HOME 并验证 java -version。find $SPARK_HOME/jars -name "*.jar" -exec grep -Hls "com/google/common/base/CaseFormat" {} \;--jars 提交,并通过 spark.{driver/executor}.extraClassPath 明确指定版本;必要时开启 spark.driver.userClassPathFirst 或 spark.executor.userClassPathFirst 让应用依赖优先(谨慎评估与 Spark 内部 API 的兼容性)。四、端口占用与脚本冲突的快速修复
ss -ltnp | grep 8080 或 netstat -lntp | grep 8080spark-env.sh 中设置:
export SPARK_MASTER_WEBUI_PORT=8081which start-all.sh 与 which stop-all.sh 均来自 $SPARK_HOME/sbin;若与 Hadoop 冲突,重命名 Hadoop 的脚本或调整 PATH。hdfs dfsadmin -safemode leaveyarn-site.xml 中设置:
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property>五、PySpark 与多版本 Python 的兼容
PYTHONHOME/PYTHONPATH 干扰;必要时在启动前 unset PYTHONHOME PYTHONPATH。python -c "import pyspark" 成功)。--conf "spark.pyspark.python=/opt/conda/envs/py38/bin/python"os.environ["PYSPARK_PYTHON"] = "/opt/conda/envs/py38/bin/python"pyspark --version、python -c "import pyspark; print(pyspark.__version__)"。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。