Pyflink 本地開發(fā)與測試

1、環(huán)境準備

首先役纹,準備 python 虛擬環(huán)境。2020年11月3日時的 pyflink 的最高版本為 1.11.2,請開發(fā)者按照實際需要或者線上環(huán)境要求來指定 pyflink 版本涵妥。

wget https://ci.apache.org/projects/flink/flink-docs-release-1.11/downloads/setup-pyflink-virtual-env.sh
sh setup-pyflink-virtual-env.sh 1.11.2
source venv/bin/activate  # 激活虛擬環(huán)境

setup-pyflink-virtual-env.sh 腳本會自動安裝 miniconda 并在當前目錄下創(chuàng)建虛擬環(huán)境文件夾 venv,然后自動安裝 apache-flink 模塊后壓縮虛擬環(huán)境為 venv.zip坡锡。

2蓬网、腳本開發(fā)

Pyflink 腳本開發(fā)請認真參考 官方文檔v1.11窒所。

Pyflink 正在快速發(fā)展的階段,每次版本更新都會增加很多新的特性帆锋,同時會取消舊特性吵取,因此務必確保開發(fā)時所參考的文檔與本地 pyflink 版本一致。

3窟坐、Jar 包依賴

Flink 中的 Jar 包是 connector 的擴展海渊,允許在 flink 腳本中連接和使用各種數(shù)據(jù)存儲工具,包括:

  • 文件系統(tǒng)哲鸳,如 HDFS臣疑,S3
  • 數(shù)據(jù)庫,如 MySQL徙菠,MongDB
  • 消息隊列讯沈,如 Kafka

Pyflink 默認支持有限的幾種 jar 包,如有特殊需要(例如以 json 格式來消費 kafka 里的數(shù)據(jù))婿奔,需要手動指定腳本依賴的 jar 包所在的路徑缺狠。

已知有 3 種方式來指定 jar 包依賴。

3.1萍摊、方法1:在 pyflink 腳本中指定

在腳本中完成 TableEnvironment 的初始化后挤茄,添加下面的腳本以指定 jar 包路徑(多個 jar 包的路徑用 ; 隔開)。

table_env.get_config().get_configuration().set_string("pipeline.jars", 'xxxx.jar;xxxxx.jar')

注意冰木,本地環(huán)境的 jar 包路徑與線上環(huán)境的 jar 包路徑可能不同穷劈,因此每次提交到線上時還需要修改腳本中的路徑為對應的路徑。

3.2踊沸、方法2:在 pyflink 模塊的 lib 目錄下歇终。

找到 pyflink 模塊的安裝路徑,以及對應的 lib 目錄逼龟。

import pyflink
import os

print(os.path.join(os.path.dirname(pyflink.__file__), 'lib'))

然后使用 cp 命令復制 jar 包到 lib 目錄下即可评凝。

這種方法一次運行,一勞永逸腺律,比較適合本地開發(fā)奕短。

3.3、方法3:flink run -j

這種方式不適用于本地開發(fā)匀钧,而是用于提交到集群上時指定 jar 包的路徑篡诽,但為了較為系統(tǒng)地介紹 jar 包依賴的指定方式,故在此介紹榴捡。

命令如下:

flink run -m yarn-cluster \
  -j flink-sql-connector-kafka_2.11-1.11.2.jar \
  -pyarch venv.zip \
  -pyexec venv.zip/venv/bin/python3 \
  -py main.py

通過 -j 參數(shù)來指定一個 jar 包路徑杈女,多個 jar 包則使用多個 -j 。

4、本地測試

Flink 支持使用 local-singleJVM 模式 來進行本地測試达椰,即只需簡單的執(zhí)行 Python xxxx.py 命令翰蠢,pyflink 就會默認啟動一個 local-singleJVM 的 flink 環(huán)境來執(zhí)行作業(yè)。

在運行過程中啰劲,可以另起終端梁沧,輸入 jps 來查看 java 進程。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蝇裤,一起剝皮案震驚了整個濱河市廷支,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌栓辜,老刑警劉巖恋拍,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異藕甩,居然都是意外死亡施敢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門狭莱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來僵娃,“玉大人,你說我怎么就攤上這事腋妙∧梗” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵骤素,是天一觀的道長匙睹。 經(jīng)常有香客問我,道長谆甜,這世上最難降的妖魔是什么垃僚? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任集绰,我火速辦了婚禮规辱,結果婚禮上,老公的妹妹穿的比我還像新娘栽燕。我一直安慰自己罕袋,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布碍岔。 她就那樣靜靜地躺著浴讯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蔼啦。 梳的紋絲不亂的頭發(fā)上榆纽,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音,去河邊找鬼奈籽。 笑死饥侵,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的衣屏。 我是一名探鬼主播躏升,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼狼忱!你這毒婦竟也來了膨疏?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤钻弄,失蹤者是張志新(化名)和其女友劉穎佃却,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體斧蜕,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡双霍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了批销。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洒闸。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖均芽,靈堂內(nèi)的尸體忽然破棺而出丘逸,到底是詐尸還是另有隱情,我是刑警寧澤掀宋,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布深纲,位于F島的核電站,受9級特大地震影響劲妙,放射性物質(zhì)發(fā)生泄漏湃鹊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一镣奋、第九天 我趴在偏房一處隱蔽的房頂上張望币呵。 院中可真熱鬧,春花似錦侨颈、人聲如沸余赢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽妻柒。三九已至,卻和暖如春耘分,著一層夾襖步出監(jiān)牢的瞬間举塔,已是汗流浹背绑警。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留央渣,地道東北人待秃。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像痹屹,于是被迫代替她去往敵國和親章郁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345