flink-1.11 pyflink 部署文档
本文主要参考了 孙金城 大佬的下面几篇文章:
Apache Flink 说道系列 - PyFlink 作业的多种部署模式
Three Min Series - How to using PyFlink Shell
代码参考:https://github.com/pyflink/playgrounds
结合自己测试过程,有些地方做了修改,做一个记录。
1.从源码编译 flink
如果已经获得 flink 二进制包,可以跳过该步骤。
可以参考官方文档 Build Flink
注意环境要求:
- = Maven 3.2.5
-
= Java 8u51
使用下面命令编译:
git clone https://github.com/apache/flink
mvn clean install -DskipTests
2. 从源码编译 pyflink
如果已经获得 pyflink 二进制包,或者使用 pip 安装,可以跳过该步骤。
参考官方文档 Build PyFlink
需要注意的是,需要在 Python 3.5+ 环境下编译。
注意:需要 Python 3.5+。
进入 flink 源码目录,执行以下命令:
cd flink-python; python setup.py sdist bdist_wheel
上面的命令可以生成 sdist 包和 bdist_wheel 包。生成目录为 flink-python/dist/,sdist 包和 bdist_wheel 都可以用来安装 pyflink,选择一种即可。
2.安装并测试
本文只介绍 onyarn 模式的安装、部署
安装机器环境要求:
- Apache Beam version == 2.19.0
- Python 3.5+
- Pip (version >= 7.1.0)
- hadoop 文件系统
安装 beam:
pip install -i https://mirrors.aliyun.com/pypi/simple/ apache-beam==2.19.0
2.1 install pyflink
将获得的 sdist 包(apache-flink-*.tar.gz) 拷贝到需要安装的机器上。
-i 指定国内 pip 源,安装会快一点
pip install -i https://mirrors.aliyun.com/pypi/simple/ apache-flink-1.11.dev0.tar.gz
这样,通过 pip list 就可以看到 apache-flink 安装好了:
Package Version
------------------- ---------
apache-beam 2.19.0
apache-flink 1.11.dev0
...
如果安装过程中遇到 ‘Could not find
yum install python3-devel
2.2 打包 Python 环境
因为 yarn 集群上 python 环境不一定符合 flink 程序的版本要求,所以我们需要使用 virtualenv 打包 python 环境。
2.2.1 install virtualenv
pip install -i https://mirrors.aliyun.com/pypi/simple/ virtualenv
2.2.2 创建 Python 环境
用 virtualenv 以 always-copy 方式建立一个全新的 Python 环境,这里定义名称为 venv:
virtualenv --always-copy venv
会在当前目录生成一个 venv 文件。
拷贝原环境的 python 标准库到 venv 中:
VENV_PYTHON=venv/bin/python
DST=`$VENV_PYTHON -c "import os;import pip;print(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(pip.__file__)))))"`
SRC=`$VENV_PYTHON -c "import os;import contextlib;print(os.path.dirname(os.path.abspath(contextlib.__file__)))"`
if [ "$SRC" != "$DST" ]; then find "$SRC" -maxdepth 1 ! -name "site-packages" ! -name "__pycache__" ! -name "python3.*" -exec cp -r -- "{}" "${DST}" \; ; fi
2.2.3 新环境安装 apache-beam
使用 venv 中的 pip 安装 apache-beam
venv/bin/pip install -i https://mirrors.aliyun.com/pypi/simple/ apache-beam==2.19.0
2.2.4 打包 Python 环境
把独立 python 环境打成 zip 包,目前打成的包比较大,有 100 多 MB
zip -r venv.zip venv
2.3 例子测试
Bath:拷贝下面的代码到
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
