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 ’ 的错误,可能缺少了 python3-devel

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:拷贝下面的代码到


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部