Python作業(yè)開發(fā)
本文為您介紹Flink Python API作業(yè)開發(fā)的背景信息、使用限制、開發(fā)方法、調(diào)試方法和連接器使用等。
背景信息
Flink Python作業(yè)需要您在本地完成開發(fā)工作,Python作業(yè)開發(fā)完成后,再在Flink開發(fā)控制臺(tái)上部署并啟動(dòng)才能看到業(yè)務(wù)效果。整體的操作流程詳情請(qǐng)參見Flink Python作業(yè)快速入門。
Flink工作空間已安裝下列軟件包。
軟件包 | 版本 |
apache-beam | 2.23.0 |
avro-python3 | 1.9.1 |
certifi | 2020.12.5 |
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.2 |
grpcio | 1.29.0 |
hdfs | 2.6.0 |
httplib2 | 0.17.4 |
idna | 2.10 |
jsonpickle | 1.2 |
mock | 2.0.0 |
numpy | 1.19.5 |
oauth2client | 3.0.0 |
pandas | 0.25.3 |
pbr | 5.5.1 |
pip | 20.1.1 |
protobuf | 3.15.3 |
py4j | 0.10.8.1 |
pyarrow | 0.17.1 |
pyasn1-modules | 0.2.8 |
pyasn1 | 0.4.8 |
pydot | 1.4.2 |
pymongo | 3.11.3 |
pyparsing | 2.4.7 |
python-dateutil | 2.8.0 |
pytz | 2021.1 |
requests | 2.25.1 |
rsa | 4.7.2 |
setuptools | 47.1.0 |
six | 1.15.0 |
typing-extensions | 3.7.4.3 |
urllib3 | 1.26.3 |
wheel | 0.36.2 |
使用限制
由于Flink受部署環(huán)境、網(wǎng)絡(luò)環(huán)境等因素的影響,所以開發(fā)Python作業(yè),需要注意以下限制:
僅支持開源Flink V1.13及以上版本。
Flink工作空間已預(yù)裝了Python 3.7.9,且Python環(huán)境中已預(yù)裝了Pandas、NumPy、PyArrow等常用的Python庫。因此,您需要在Python 3.7及以上版本開發(fā)代碼。
Flink運(yùn)行環(huán)境僅支持JDK 8和JDK 11,如果Python作業(yè)中依賴第三方JAR包,請(qǐng)確保JAR包兼容。
VVR 4.x僅支持開源Scala V2.11版本,VVR 6.x及以上版本僅支持開源Scala V2.12版本。如果Python作業(yè)中依賴第三方JAR包,請(qǐng)確保使用Scala版本對(duì)應(yīng)的JAR包依賴。
作業(yè)開發(fā)
開發(fā)參考
您可以參見以下文檔在本地完成Flink業(yè)務(wù)代碼開發(fā),開發(fā)完成后您需要將其上傳到Flink開發(fā)控制臺(tái),并部署上線作業(yè)。
Apache Flink V1.17業(yè)務(wù)代碼開發(fā),請(qǐng)參見Flink Python API開發(fā)指南。
Apache Flink編碼過程中遇到的問題及解決方法,請(qǐng)參見常見問題。
作業(yè)調(diào)試
您可以在Python自定義函數(shù)的代碼實(shí)現(xiàn)中,通過logging的方式,輸出日志信息,方便后期問題定位,示例如下。
@udf(result_type=DataTypes.BIGINT())
def add(i, j):
logging.info("hello world")
return i + j
日志輸出后,您可以在TaskManager的日志文件查看。
連接器使用
Flink所支持的連接器列表,請(qǐng)參見支持的連接器。連接器使用方法如下:
單擊目標(biāo)工作空間操作列下的控制臺(tái)。
在左側(cè)導(dǎo)航欄,單擊文件管理。
單擊上傳資源,選擇您要上傳的目標(biāo)連接器的Python包。
您可以上傳您自己開發(fā)的連接器,也可以上傳Flink提供的連接器。Flink提供的連接器官方Python包的下載地址,請(qǐng)參見Connector列表。
在
頁面,單擊 ,附加依賴文件項(xiàng)選擇目標(biāo)連接器的Python包,配置其他參數(shù)并部署作業(yè)。單擊部署的作業(yè)名稱,在部署詳情頁簽運(yùn)行參數(shù)配置區(qū)域,單擊編輯,在其他配置中,添加Python連接器包位置信息。
如果您的作業(yè)需要依賴多個(gè)連接器Python包,例如依賴的2個(gè)包的名字分別為connector-1.jar和connector-2.jar,則配置信息如下。
pipeline.classpaths: 'file:///flink/usrlib/connector-1.jar;file:///flink/usrlib/connector-2.jar'
相關(guān)文檔
Flink Python作業(yè)的完整開發(fā)流程示例,請(qǐng)參見Flink Python作業(yè)快速入門。
在Flink Python作業(yè)中使用自定義的Python虛擬環(huán)境、第三方Python包、JAR包和數(shù)據(jù)文件,詳情請(qǐng)參見使用Python依賴。
實(shí)時(shí)計(jì)算Flink版還支持運(yùn)行SQL和DataStream作業(yè),開發(fā)方法請(qǐng)參見SQL作業(yè)開發(fā)和JAR作業(yè)開發(fā)。