如何在 IDEA 中 Debug Flink 1.12 SQL Client 源碼岛宦?你學(xué)廢了嗎阱佛?

前言

此文章主要如何配置使能在idea 中debug模式啟動(dòng)flink sqlClient 客戶端帖汞,通過(guò)執(zhí)行flink sql debug源碼查看flink解析sql提交任務(wù)到flink集群執(zhí)行的原理。

了解sqlClient 代碼 有以下好處:

改造 sqlClient 成為server端使之可以接收遠(yuǎn)端client服務(wù)傳輸?shù)膄link sql語(yǔ)句凑术,并返回執(zhí)行結(jié)果到遠(yuǎn)端client翩蘸,從而有望可以實(shí)現(xiàn)flink開(kāi)發(fā)平臺(tái)。

主要軟件如下:flink 1.12.0 hive 2.3.4 hadoop 2.7.2

主要步驟

下載flink1.12的源碼

官網(wǎng)下載地址如下:https://www.apache.org/dyn/closer.lua/flink/flink-1.12.0/flink-1.12.0-src.tgz

源碼在idea中打開(kāi)淮逊,主要查看 flink-table 項(xiàng)目的源碼

找到flink sqlClient的啟動(dòng)類

由 sql-client 的啟動(dòng)腳本 sql-client.sh 可知催首,啟動(dòng)類為 SqlClient 類其main方法為整個(gè)sqlClient 的啟動(dòng)方法

添加啟動(dòng)類運(yùn)行需要的參數(shù)和依賴包

由flink sqlClient 啟動(dòng)腳本命令為:

可知 需要添加 embedded 參數(shù)

由啟動(dòng)腳本由 -classpath 參數(shù),可知運(yùn)行sqlClient需要添加依賴包

在啟動(dòng)腳本中添加打印日志邏輯把 manglePathList "$CC_CLASSPATH:$INTERNAL_HADOOP_CLASSPATHS:$FLINK_SQL_CLIENT_JAR" 結(jié)果值打印出來(lái)

得到的結(jié)果是以:分隔開(kāi)的需要依賴的jar包

使用以下腳本下載包到本地目錄:D:\flink\lib

#  `manglePathList "$CC_CLASSPATH:$INTERNAL_HADOOP_CLASSPATHS:$FLINK_SQL_CLIENT_JAR"` 
jars=`hadoop classpath`
OLD_IFS="$IFS" 
IFS=":" 
arr=($jars) 
IFS="$OLD_IFS" 
for s in ${arr[@]} 
do 
    echo "$s" 
    sz $s
done

idea 中添加D:\flink\lib 目錄上的包到項(xiàng)目中

添加flink的配置文件

運(yùn)行main方法發(fā)現(xiàn)報(bào)了提示找不到配置文件的錯(cuò)泄鹏,發(fā)現(xiàn)讀取了 FLINK_CONF_DIR 變量名的值作為配置文件路徑

在idea 中添加系統(tǒng)變量 FLINK_CONF_DIR=D:\flink\conf

下載flink 的所有配置文件目錄:/usr/local/apps/flink1.12/conf 下的所有配置文件 到D:\flink\conf 文件夾內(nèi)

運(yùn)行SqlClient 的main方法啟動(dòng)

啟動(dòng)成功 在idea的窗口中出現(xiàn)如下圖案

flink中整合hive catalogs 支持執(zhí)行hive 語(yǔ)句

修改 flink 的配置文件 sql-client-defaults.yaml 配置 hive catalogs

hive-conf-dir 中存放hive的配置文件

同時(shí)需要啟動(dòng):hive --service metastore

執(zhí)行語(yǔ)句檢查是否提交到flink集群上

INSERT INTO test_hive SELECT ‘Jack’, 20;

select * from test_hive;

debug flink sql 執(zhí)行流程

以debug 模式啟動(dòng)SqlClient 的main方法

執(zhí)行 INSERT INTO test_hive SELECT ‘Jack’, 20; 語(yǔ)句讀取到flink sql

parseCommand 方法解析提交的flink sql

callCommand 方法執(zhí)行flink sql

callCommand 方法中根據(jù)sql的類型執(zhí)行不同的方法

這里執(zhí)行的是callInsert

executor.executeUpdate 執(zhí)行flink sql

后面的print 語(yǔ)句就是打印下面這內(nèi)容

來(lái)源:微信公眾號(hào)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末郎任,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子备籽,更是在濱河造成了極大的恐慌舶治,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件车猬,死亡現(xiàn)場(chǎng)離奇詭異霉猛,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)珠闰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門惜浅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人伏嗜,你說(shuō)我怎么就攤上這事坛悉。” “怎么了承绸?”我有些...
    開(kāi)封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵吹散,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我八酒,道長(zhǎng)空民,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任羞迷,我火速辦了婚禮界轩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘衔瓮。我一直安慰自己浊猾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布热鞍。 她就那樣靜靜地躺著葫慎,像睡著了一般衔彻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上偷办,一...
    開(kāi)封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天艰额,我揣著相機(jī)與錄音,去河邊找鬼椒涯。 笑死柄沮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的废岂。 我是一名探鬼主播祖搓,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼湖苞!你這毒婦竟也來(lái)了拯欧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤财骨,失蹤者是張志新(化名)和其女友劉穎镐作,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蚓再,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滑肉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了摘仅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片靶庙。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖娃属,靈堂內(nèi)的尸體忽然破棺而出六荒,到底是詐尸還是另有隱情,我是刑警寧澤矾端,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布掏击,位于F島的核電站,受9級(jí)特大地震影響秩铆,放射性物質(zhì)發(fā)生泄漏砚亭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一殴玛、第九天 我趴在偏房一處隱蔽的房頂上張望捅膘。 院中可真熱鬧,春花似錦滚粟、人聲如沸寻仗。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)署尤。三九已至耙替,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間曹体,已是汗流浹背俗扇。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留混坞,地道東北人狐援。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓钢坦,卻偏偏與公主長(zhǎng)得像究孕,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子爹凹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 使用Hive構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)已經(jīng)成為了比較普遍的一種解決方案厨诸。目前,一些比較常見(jiàn)的大數(shù)據(jù)處理引擎禾酱,都無(wú)一例外兼容Hiv...
  • flink 從1.10.0 開(kāi)始支持hive微酬,開(kāi)始搭建flink-hive壞境以及為后期sql-client提供壞...
    百歲葉閱讀 1,997評(píng)論 0 0
  • 前言 大數(shù)據(jù)領(lǐng)域SQL化開(kāi)發(fā)的風(fēng)潮方興未艾(所謂"Everybody knows SQL"),F(xiàn)link自然也不能...
    LittleMagic閱讀 5,735評(píng)論 12 14
  • 久違的晴天颤陶,家長(zhǎng)會(huì)颗管。 家長(zhǎng)大會(huì)開(kāi)好到教室時(shí),離放學(xué)已經(jīng)沒(méi)多少時(shí)間了滓走。班主任說(shuō)已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)垦江。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,495評(píng)論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友搅方。感恩相遇比吭!感恩不離不棄。 中午開(kāi)了第一次的黨會(huì)姨涡,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,551評(píng)論 0 11