本文為您介紹Flink Python API作業開發的背景資訊、使用限制、開發方法、調試方法和連接器使用等。
背景資訊
Flink Python作業需要您在本地完成開發工作,Python作業開發完成後,再在Flink開發控制台上部署並啟動才能看到業務效果。整體的操作流程詳情請參見Flink Python作業快速入門。
VVR-11
Flink工作空間已安裝下列軟體包。
軟體包 | 版本 |
apache-beam | 2.48.0 |
avro-python3 | 1.10.2 |
brotlipy | 0.7.0 |
certifi | 2022.12.7 |
cffi | 1.15.1 |
charset-normalizer | 2.0.4 |
cloudpickle | 2.2.1 |
conda | 22.11.1 |
conda-content-trust | 0.1.3 |
conda-package-handling | 1.9.0 |
crcmod | 1.7 |
cryptography | 38.0.1 |
Cython | 3.0.12 |
dill | 0.3.1.1 |
dnspython | 2.7.0 |
docopt | 0.6.2 |
exceptiongroup | 1.3.0 |
fastavro | 1.12.1 |
fasteners | 0.20 |
find_libpython | 0.5.0 |
grpcio | 1.56.2 |
grpcio-tools | 1.56.2 |
hdfs | 2.7.3 |
httplib2 | 0.22.0 |
idna | 3.4 |
importlib_metadata | 8.7.0 |
iniconfig | 2.1.0 |
isort | 6.1.0 |
numpy | 1.24.4 |
objsize | 0.6.1 |
orjson | 3.9.15 |
packaging | 25.0 |
pandas | 2.3.3 |
pemja | 0.5.5 |
pip | 22.3.1 |
pluggy | 1.0.0 |
proto-plus | 1.26.1 |
protobuf | 4.25.8 |
py-spy | 0.4.0 |
py4j | 0.10.9.7 |
pyarrow | 11.0.0 |
pyarrow-hotfix | 0.6 |
pycodestyle | 2.14.0 |
pycosat | 0.6.4 |
pycparser | 2.21 |
pydot | 1.4.2 |
pymongo | 4.15.4 |
pyOpenSSL | 22.0.0 |
pyparsing | 3.2.5 |
PySocks | 1.7.1 |
pytest | 7.4.4 |
python-dateutil | 2.9.0 |
pytz | 2025.2 |
regex | 2025.11.3 |
requests | 2.32.5 |
ruamel.yaml | 0.18.16 |
ruamel.yaml.clib | 0.2.14 |
setuptools | 70.0.0 |
six | 1.16.0 |
tomli | 2.3.0 |
toolz | 0.12.0 |
tqdm | 4.64.1 |
typing_extensions | 4.15.0 |
tzdata | 2025.2 |
urllib3 | 1.26.13 |
wheel | 0.38.4 |
zipp | 3.23.0 |
zstandard | 0.25.0 |
VVR-8
Flink工作空間已安裝下列軟體包。
軟體包 | 版本 |
apache-beam | 2.43.0 |
avro-python3 | 1.9.2.1 |
certifi | 2025.7.9 |
charset-normalizer | 3.4.2 |
cloudpickle | 2.2.0 |
crcmod | 1.7 |
Cython | 0.29.24 |
dill | 0.3.1.1 |
docopt | 0.6.2 |
fastavro | 1.4.7 |
fasteners | 0.19 |
find_libpython | 0.4.1 |
grpcio | 1.46.3 |
grpcio-tools | 1.46.3 |
hdfs | 2.7.3 |
httplib2 | 0.20.4 |
idna | 3.10 |
isort | 6.0.1 |
numpy | 1.21.6 |
objsize | 0.5.2 |
orjson | 3.10.18 |
pandas | 1.3.5 |
pemja | 0.3.2 |
pip | 22.3.1 |
proto-plus | 1.26.1 |
protobuf | 3.20.3 |
py4j | 0.10.9.7 |
pyarrow | 8.0.0 |
pycodestyle | 2.14.0 |
pydot | 1.4.2 |
pymongo | 3.13.0 |
pyparsing | 3.2.3 |
python-dateutil | 2.9.0 |
pytz | 2025.2 |
regex | 2024.11.6 |
requests | 2.32.4 |
setuptools | 58.1.0 |
six | 1.17.0 |
typing_extensions | 4.14.1 |
urllib3 | 2.5.0 |
wheel | 0.33.4 |
zstandard | 0.23.0 |
VVR-6
Flink工作空間已安裝下列軟體包。
軟體包 | 版本 |
apache-beam | 2.27.0 |
avro-python3 | 1.9.2.1 |
certifi | 2024.8.30 |
charset-normalizer | 3.3.2 |
cloudpickle | 1.2.2 |
crcmod | 1.7 |
Cython | 0.29.16 |
dill | 0.3.1.1 |
docopt | 0.6.2 |
fastavro | 0.23.6 |
future | 0.18.3 |
grpcio | 1.29.0 |
hdfs | 2.7.3 |
httplib2 | 0.17.4 |
idna | 3.8 |
importlib-metadata | 6.7.0 |
isort | 5.11.5 |
jsonpickle | 2.0.0 |
mock | 2.0.0 |
numpy | 1.19.5 |
oauth2client | 4.1.3 |
pandas | 1.1.5 |
pbr | 6.1.0 |
pemja | 0.1.4 |
pip | 20.1.1 |
protobuf | 3.17.3 |
py4j | 0.10.9.3 |
pyarrow | 2.0.0 |
pyasn1 | 0.5.1 |
pyasn1-modules | 0.3.0 |
pycodestyle | 2.10.0 |
pydot | 1.4.2 |
pymongo | 3.13.0 |
pyparsing | 3.1.4 |
python-dateutil | 2.8.0 |
pytz | 2024.1 |
requests | 2.31.0 |
rsa | 4.9 |
setuptools | 47.1.0 |
six | 1.16.0 |
typing-extensions | 3.7.4.3 |
urllib3 | 2.0.7 |
wheel | 0.42.0 |
zipp | 3.15.0 |
使用限制
由於Flink受部署環境、網路環境等因素的影響,所以開發Python作業,需要注意以下限制:
僅支援開源Flink V1.13及以上版本。
Flink工作空間已預裝了Python環境,且Python環境中已預裝了Pandas、NumPy、PyArrow等常用的Python庫。
說明Realtime Compute引擎VVR 8.0.11以下版本預裝Python 3.7.9版本,Realtime Compute引擎VVR 8.0.11及以上版本預裝Python 3.9.21版本。如需將低版本升級至Realtime Compute引擎VVR 8.0.11及以上版本,必須對先前版本的PyFlink作業進行重新測試、部署和運行。
Flink運行環境僅支援JDK 8和JDK 11,如果Python作業中依賴第三方JAR包,請確保JAR包相容。
VVR 4.x僅支援開源Scala V2.11版本,VVR 6.x及以上版本僅支援開源Scala V2.12版本。如果Python作業中依賴第三方JAR包,請確保使用Scala版本對應的JAR包依賴。
作業開發
開發參考
您可以參見以下文檔在本地完成Flink業務代碼開發,開發完成後您需要將其上傳到Flink開發控制台,並部署上線作業。
Apache Flink V1.20業務代碼開發,請參見Flink Python API開發指南。
Apache Flink編碼過程中遇到的問題及解決方案,請參見常見問題。
作業調試
您可以在Python自訂函數的代碼實現中,通過logging的方式,輸出日誌資訊,方便後期問題定位,樣本如下。
@udf(result_type=DataTypes.BIGINT())
def add(i, j):
logging.info("hello world")
return i + j日誌輸出後,您可以在TaskManager的記錄檔查看。
連接器使用
Flink所支援的連接器列表,請參見支援的連接器。連接器使用方法如下:
單擊目標工作空間操作列下的控制台。
在左側導覽列,單擊檔案管理。
單擊上傳資源,選擇您要上傳的目標連接器的Python包。
您可以上傳您自己開發的連接器,也可以上傳Flink提供的連接器。Flink提供的連接器官方Python包的下載地址,請參見Connector列表。
在頁面,單擊,附加依賴檔案項選擇目標連接器的Python包,配置其他參數並部署作業。
單擊部署的作業名稱,在部署詳情頁簽運行參數配置地區,單擊編輯,在其他配置中,添加Python連接器包位置資訊。
如果您的作業需要依賴多個連接器Python包,例如依賴的2個包的名字分別為connector-1.jar和connector-2.jar,則配置資訊如下。
pipeline.classpaths: 'file:///flink/usrlib/connector-1.jar;file:///flink/usrlib/connector-2.jar'
相關文檔
Flink Python作業的完整開發流程樣本,請參見Flink Python作業快速入門。
在Flink Python作業中使用自訂的Python虛擬環境、第三方Python包、JAR包和資料檔案,詳情請參見使用Python依賴。
Realtime ComputeFlink版還支援運行SQL和DataStream作業,開發方法請參見作業開發地圖和JAR作業開發。