前言
最近,我们将 Spark 从 2 版本升级到了 3 版本,并创建了一个全新的 Hadoop 大数据集群,旧的集群将不再使用。之前,一些实验代码和 Jupyter Server 都运行在 gateway 这台机器上,这台机器其实只是部署了 Hadoop Client 的节点。由于集群的变更,gateway 也需要跟着迁移。
运维团队只提供了一台新的机器,因此我们的首要任务是迁移 PySpark 环境。本文将记录如何迁移 Conda 虚拟环境的详细过程,以确保我们的实验代码在新的环境中能够正常运行。
说明
- 主要是基于 Conda 的 Python 来提交 PySpark 任务
- 新旧环境的操作系统是一样的
- 迁移后相应的 Spark 的依赖包也是要进行相应调整的
- 所有的 Python 包都是通过网络安装的
新环境安装配置 Conda
安装
# 下载
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 安装
bash ./Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
# 更新
conda update -n base -c defaults conda
# 修改配置文档 ~/.condarc
conda config --set show_channel_urls yes
vim ~/.condarc
# 内容如下:
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
旧环境生成文件
conda list --explicit > spec-list.txt
将生成的 spec-list.txt 想办法传到新环境那台机器上。
新环境创建虚拟环境
# 创建虚拟环境
conda create --name spark_env --file spec-list.txt
# 查看所有的虚拟环境
conda env list
# 查看安装的 Python 包
conda list
# 激活
conda activate spark_env
# 退出虚拟环境
conda deactivate