《网站推广策划》,设计制作我们的小船,网站建设与管理论文,网站开发项目分析模板您可以在Flink Python作业中使用自定义的Python虚拟环境、第三方Python包、JAR包和数据文件等#xff0c;本文为您介绍如何在Python作业中使用这些依赖。
使用自定义的Python虚拟环境
说明
VVR 4.x仅支持3.7版本的Python虚拟环境#xff0c;VVR 6.x及以上的版本无此限制本文为您介绍如何在Python作业中使用这些依赖。
使用自定义的Python虚拟环境
说明
VVR 4.x仅支持3.7版本的Python虚拟环境VVR 6.x及以上的版本无此限制您可以使用更高版本的Python虚拟环境。
Python支持构建虚拟环境每个Python虚拟环境都有一套完整的Python运行环境并且可以在这套虚拟环境中安装一系列的Python依赖包。关于Python虚拟环境更详细的介绍请参见Python文档创建虚拟环境。下文为您介绍如何准备Python的虚拟环境。 准备Python的虚拟环境。 set -e
# 下载Python 3.10 miniconda.sh脚本。
wget https://repo.continuum.io/miniconda/Miniconda3-py310_24.7.1-0-Linux-x86_64.sh -O miniconda.sh# 为Python 3.10 miniconda.sh脚本添加执行权限。
chmod x miniconda.sh# 创建Python的虚拟环境。
./miniconda.sh -b -p venv# 激活Conda Python虚拟环境。
source venv/bin/activate # 安装PyFlink依赖。
# update the PyFlink version if needed
pip install apache-flink1.17.2# 关闭Conda Python虚拟环境。
conda deactivate# 删除缓存的包。
rm -rf venv/pkgs# 将准备好的Conda Python虚拟环境打包。
zip -r venv.zip venv 说明 本文以作业为VVR 8.xPython 3.10为例为您介绍如果您需要使用其他VVR版本或安装其他版本的Python的虚拟环境则需要修改以下两个参数 miniconda.sh脚本信息修改为您的目标版本地址信息。 apache-flink修改为您作业使用的VVR版本对应的Flink版本Flink版本查看方法请参见控制台操作。 在本地准备setup-pyflink-virtual-env.sh脚本其内容如下。 在本地准备build.sh脚本其内容如下。 #!/bin/bash
set -e -xsed -i s/mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-*
sed -i s|#baseurlhttp://mirror.centos.org|baseurlhttp://vault.centos.org|g /etc/yum.repos.d/CentOS-*yum install -y zip wgetcd /root/
bash /build/setup-pyflink-virtual-env.sh
mv venv.zip /build/ 在命令行执行如下命令完成python虚拟环境的安装。 docker run -it --rm -v $PWD:/build -w /build quay.io/pypa/manylinux2014_x86_64 ./build.sh 执行完该命令后会生成一个名字为venv.zip的文件本示例为Python 3.10的虚拟环境。 您也可以修改上述脚本在虚拟环境中安装所需的第三方Python包。 在Python作业中使用Python虚拟环境。 登录实时计算控制台。 单击目标工作空间操作列下的控制台。 在左侧导航栏单击文件管理上传venv.zip文件。 在运维中心 作业运维页面单击目标作业名称。 在部署详情页签基础配置区域Python Archives选择venv.zip文件。 如果SQL作业在虚拟环境中使用Python UDF需要在运行参数配置区域的其他配置项添加如下配置信息。 python.archives: oss://.../venv.zip 在运行参数配置区域其他配置项按照您作业的VVR版本添加对应的指定Python虚拟环境的安装路径的配置信息。 vvr-6.x及以上版本 python.executable: venv.zip/venv/bin/python
python.client.executable: venv.zip/venv/bin/python vvr-6.x以下版本 python.executable: venv.zip/venv/bin/python
使用第三方Python包
说明
下述内容中的Zip Safe、PyPI和manylinux属于第三方搭建的网站访问时可能会存在无法打开或访问延迟的问题。
下面将从以下两个场景为您介绍如何使用第三方Python包 使用可直接Import的第三方Python包 如果您的第三方Python包是Zip Safe的即不需要安装即可直接在Python作业中使用。操作步骤如下 下载可直接Import的第三方Python包。 在浏览器上打开PyPI页面。 在搜索框中输入目标第三方Python包名称例如apache-flink 1.12.2。 在搜索结果中单击目标结果名称。 在左侧导航栏单击Download files。 单击文件名中包含cp37-cp37m-manylinux1的包名称进行下载。 登录实时计算控制台。 单击目标工作空间操作列下的控制台。 在左侧导航栏单击文件管理上传第三方Python包。 在运维中心 作业运维页面单击部署作业 Python作业Python Libraries项选择所上传的第三方Python包。 单击保存。 使用需要编译的第三方Python包 如果您的第三方Python包是tar.gz格式的压缩包或从其他地方下载的源码包且压缩包的根目录下存在setup.py文件则这种类型的第三方Python包通常需要先编译才能被使用。您需要先在与Flink兼容的环境下编译第三方Python包然后才可在Python作业中调用第三方Python包。 推荐使用quay.io/pypa/manylinux2014_x86_64镜像容器中的Python 3.7来编译第三方Python包使用该容器编译生成的包兼容绝大多数Linux环境关于该镜像容器的更多信息请参见manylinux。 说明 Python 3.7的安装路径为 /opt/python/cp37-cp37m/bin/python3。 下面以opencv-python-headless第三方Python包为例介绍一下如何编译和使用该第三方Python包。 编译第三方Python包。 在本地准备requirements.txt文件其内容如下。 opencv-python-headless 在本地准备build.sh脚本其内容如下。 #!/bin/bash
set -e -xsed -i s/mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-*
sed -i s|#baseurlhttp://mirror.centos.org|baseurlhttp://vault.centos.org|g /etc/yum.repos.d/CentOS-*yum install -y zipPYBIN/opt/python/cp37-cp37m/bin
#PYBIN/opt/python/cp38-cp38/bin
#PYBIN/opt/python/cp39-cp39/bin
#PYBIN/opt/python/cp310-cp310/bin${PYBIN}/pip install --target __pypackages__ -r requirements.txt
cd __pypackages__ zip -r deps.zip . mv deps.zip ../ cd ..
rm -rf __pypackages__ 在CMD命令行执行如下命令。 docker run -it --rm -v $PWD:/build -w /build quay.io/pypa/manylinux2014_x86_64 /bin/bash build.sh 该命令执行完后会生成一个名字为deps.zip的文件该文件为编译之后的第三方Python包。 您也可以修改requirements.txt安装其他所需的第三方Python包。此外requirements.txt文件中可以指定多个Python依赖。 在Python作业中使用第三方Python包deps.zip。 登录实时计算控制台。 单击目标工作空间操作列下的控制台。 在左侧导航栏单击文件管理上传deps.zip。 在运维中心 作业运维页面单击目标作业名称在部署详情页签基础配置区域单击编辑后在Python Libraries项选择deps.zip。 单击保存。
使用JAR包
如果您的Flink Python作业中使用了Java类例如作业中使用了Connector或者Java自定义函数时可以通过如下方式来指定Connector或者Java自定义函数的JAR包。 登录实时计算控制台。 单击目标工作空间操作列下的控制台。 在左侧导航栏单击文件管理上传需要使用的JAR包。 在运维中心 作业运维页面单击目标作业名称在部署详情页签基础配置区域单击编辑后在附加依赖文件项选择需要使用的JAR包。 在运行参数配置区域其他配置项添加配置信息。 假如需要依赖多个JAR包且名字分别为jar1.jar和jar2.jar配置内容如下。 pipeline.classpaths: file:///flink/usrlib/jar1.jar;file:///flink/usrlib/jar2.jar 单击保存。
使用数据文件
说明
Flink暂不支持通过上传数据文件的方式来进行python作业调试。
下面将从两个场景为您介绍如何使用数据文件 通过Python Archives选项方式 如果您的数据文件的数量比较多时您可以将数据文件打包成一个ZIP包然后通过如下方式在Python作业中使用。操作步骤如下 登录实时计算控制台。 单击目标工作空间操作列下的控制台。 在左侧导航栏单击文件管理上传目标数据文件ZIP包。 在运维中心 作业运维页面单击目标作业名称在部署详情页签基础配置区域单击编辑后在Python Archives项选择需要使用的数据文件ZIP包。 在Python自定义函数中可以通过如下方式访问数据文件。假如数据文件所在压缩包名称为mydata.zip。 def map():with open(mydata.zip/mydata/data.txt) as f:... 通过附加依赖文件选项 如果您的数据文件数量比较少时可以通过如下方式在Python作业中使用。操作步骤如下 登录实时计算控制台。 单击目标工作空间操作列下的控制台。 在左侧导航栏单击文件管理上传目标数据文件。 在运维中心 作业运维页面单击目标作业名称在部署详情页签基础配置区域单击编辑后在附加依赖文件项选择需要的数据文件。 在Python自定义函数中可以通过如下方式访问数据文件。以数据文件名称为data.txt为例的代码如下。 def map():with open(/flink/usrlib/data.txt) as f:...