国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

手把手教你獲取、編譯和調試Flink的源代碼

開發 架構
獲取Flink源代碼的方式有兩種:一種是通過官網的源代碼下載地址直接下載,另一種是通過git clone的方式。

一獲取與導入Flink源代碼

1. 下載Flink源代碼

獲取Flink源代碼的方式有兩種:一種是通過官網的源代碼下載地址直接下載,另一種是通過git clone的方式。

1)官網下載方式

下載地址為

https://flink.apache.org/downloads.html

選擇Flink 1.9.0的Source版本下載。

2)git clone方式

輸入git clone git@github.com:apache/flink.git 命令將源代碼下載到本地,如圖1-5所示。

▲圖1-5 git clone方式下載

2. 導入Flink源代碼

導入Flink 源代碼分成兩步,分別是將Flink源代碼導入IDEA和配置Flink源代碼的CheckStyle。其中,配置好Flink 源代碼的CheckStyle是為了保證Flink 源代碼修改符合CheckStyle里的規范要求。

將下載好的Flink源代碼導入IDEA,流程如下。

啟動IntelliJ IDEA 并單擊歡迎窗口右上角的Open按鈕。

在彈出窗口中選擇Flink源代碼的根目錄。

選擇Import project from external model和maven項,并單擊Next按鈕。

選擇SDK。如果之前沒有配置過SDK,單擊“+”圖標, 并點擊JDK,選擇你的JDK的目錄,然后單擊OK按鈕。

單擊Next 按鈕完成Flink源代碼的導入。

在導入的項目右側單擊Maven→Generate Sources and Update Folders的圖標,將Flink Library 構建到Maven 本地倉庫。

構建項目(單擊Build→Make Project圖標)。

想對Flink進行二次開發或者為開源社區貢獻代碼的讀者可以選擇配置CheckStyle。

1)Java CheckStyle配置流程

IntelliJ IDEA 通過CheckStyle-IDEA 插件來支持CheckStyle。

在IntelliJ IDEA 的Plugins Marketplace中查找并安裝 CheckStyle-IDEA 插件。

依次選擇Settings→Tools→Checkstyle并設置checkstyle。

將 Scan Scope設置為Only Java sources(including tests)。

在Checkstyle version下拉列表中選擇checkstyle版本,并單擊Apply按鈕。(注:官方推薦版本為8.12。)

在Configuration File面板中單擊“+”圖標添加新配置:

在彈窗中將Description設置為Flink;

選中 Use a local Checkstyle file,并選擇Flink源代碼目錄下的 tools/maven/checkstyle.xml文件;

勾選Store relative to project location 選項,單擊Next按鈕;

將checkstyle.suppressions.file的屬性設置值為 suppressions.xml,單擊Next按鈕即完成配置。

勾選剛剛添加的新配置Flink,以將其設置為活躍的配置,依次單擊Apply 和OK按鈕,即完成Java 部分CheckStyle的配置。若源代碼違反CheckStyle規范,CheckStyle會給出警告。

在CheckStyle 構建完成后,依次選擇Settings→Editor→Code Style→Java,并單擊齒輪圖標,選擇導入Flink源代碼目錄下的tools/maven/checkstyle.xml文件,這樣就可以自動調整import的布局了。

可以在CheckStyle的窗口中單擊Check Module按鈕掃描整個模塊,以檢測代碼的CheckStyle。

注意:目前Flink源代碼的flink-core、flink-optimizer和 flink-runtime模塊還沒有完全符合設置的CheckStyle的要求,因此在這三個模塊中出現違反CheckStyle的警告是正常的。

2)Scala CheckStyle配置流程

開啟Scala 的CheckStyle,依次選擇Settings→Editor→Inspections,再搜索Scala style inspections并勾選。將Flink源代碼目錄下的tools/maven/scalastyle_config.xml放置到Flink 源代碼的.idea目錄下,即完成Scala部分CheckStyle的配置。

二 編譯與調試Flink源代碼

1. 編譯與構建Flink

源代碼已經導入,CheckStyle也已配置好,接下來開始編譯與構建Flink。

在構建源代碼之前,假如有修改Flink 版本的需求,可以通過修改Flink源代碼的tools/change-version.sh來實現。

Flink源代碼的編譯與構建會因Maven版本的不同而有所差異。對于Maven 3.0.x 版本、3.1.x版本、3.2.x版本,可以采用簡單構建Flink的方式,在Flink源代碼的根目錄下運行以下命令。

  1. $ mvn clean install -DskipTests 

而對于Maven 3.3.x及以上版本,則要相對麻煩一點,在Flink源代碼的根目錄下運行下面的命令。

  1. $ mvn clean install -DskipTests 
  2. $ cd flink-dist 
  3. $ mvn clean install 

推薦使用Maven 3.2.5版本,下面就依據這個版本來介紹更多的構建內容。使用如下方式快速構建Flink源代碼,會跳過測試、QA插件、Java docs。

  1. $ mvn clean install -DskipTests -Dfast 

在構建Flink時,會默認構建一個Flink特定的Hadoop 2的jar,以供Flink 使用HDFS 和YARN。大多數開發者有指定Hadoop版本的需求(建議選擇Hadoop 2.4及以上版本)。

  1. $ mvn clean install -DskipTests -Dhadoop.version=3.2.2 -Dinclude-hadoop 

其中加上了-Dinclude-hadoop參數,這會將Hadoop的類打包到lib目錄下的flink-

dist*.jar,否則Hadoop 會作為一個jar包放在opt目錄下。

選擇合適的方式構建Flink項目,會將Flink的構建放到本地Maven倉庫中,并將Flink源代碼構建結果放在build-target目錄(Flink源代碼構建目錄)下。可以將build-target目錄壓縮到一個tar包,即與官網一樣的Flink 二進制包。

2. Flink 源代碼調試

調試Flink 源代碼有助于我們了解源代碼的執行流程和排查問題。Flink 源代碼調試分為本地調試和遠程調試,下面來分別介紹。

1)本地調試

以Flink源代碼自帶Streaming 的WordCount為例介紹如何進行本地調試。找到Flink 源代碼目錄flink-examples/flink-examples-streaming的多級子目錄下的WordCount.java,再選擇Debug。讀者可以在Flink源代碼中設置斷點進行跟蹤調試。

2)遠程調試

本地調試僅限于部署模式中的Local模式,對于基于Standalone、on YARN、on Kubernetes的部署模式,需要使用遠程調試。

遠程調試方式有兩種:一是修改日志等級,二是修改配置來開啟Java遠程調試。

修改日志等級

打開Flink源代碼的構建目錄(build-target)下的conf/log4j.properties,根據需要將內容中的INFO改成DEBUG,如下所示,只是將rootLogger的賦值從INFO 修改為DEBUG。修改log4j.properties后構建和運行Flink,即可通過DEBUG日志進行遠程調試。

  1. # 設置全局的日志等級 
  2. log4j.rootLogger=DEBUG, file 
  3.  
  4. # 也可以按需改變Flink、Akka、Hadoop、Kafka和ZooKeeper包以及其他包的日志等級 
  5. log4j.logger.org.apache.flink=INFO 
  6.  
  7. log4j.logger.akka=INFO 
  8. log4j.logger.org.apache.kafka=INFO 
  9. log4j.logger.org.apache.hadoop=INFO 
  10. log4j.logger.org.apache.zookeeper=INFO 
  11.  
  12. # Log all infos in the given file 
  13. log4j.appender.file=org.apache.log4j.FileAppender 
  14. log4j.appender.file.file=${log.file} 
  15. log4j.appender.file.append=false 
  16. log4j.appender.file.layout=org.apache.log4j.PatternLayout 
  17. log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS}  
  18. %-5p %-60c %x - %m%n 
  19.  
  20. # Suppress the irrelevant (wrong) warnings from the Netty channel handler 
  21. log4j.logger.org.apache.flink.shaded.akka.org.jboss.netty.channel 
  22. .DefaultChannelPipeline=ERROR, file 

修改配置來開啟Java遠程調試

首先打開IDEA,創建Remote項(見圖1-6)并復制Remote項的Java運行參數內容,然后修改Flink 構建目錄下的conf/flink-conf.yaml,添加env.java.opts屬性與值,添加的內容如下:

  1. env.java.opts: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n, address=5005 

▲圖1-6 配置遠程調試中的Remote項

還可以通過env.java.opts.jobmanager 與env.java.opts.taskmanager來設置JobManager 和TaskManager運行的參數,從而設置開啟遠程調試。設置配置后,基于這個構建目錄運行Flink應用,根據運行的JobManager 與TaskManager 的IP修改原先配置的Remote項的host,在Flink源代碼中設置斷點,通過Debug 配置Remote項來進行遠程調試。

設置env.java.opts、env.java.opts.jobmanager和env.java.opts.taskmanager的方法在on Kubernetes模式下很適用,因為Flink 運行的各個組件的IP不同。其他模式存在運行組件與IP、調試端口相同的問題,對于這種情況可以考慮采用修改日志等級的方式。

通過學習Flink源代碼的編譯與構建,我們知道如何根據需要構建一個Flink發布包。通過學習Flink源代碼的調試,我們對源代碼的調試有了更深的了解,為后續理解源代碼和排查源代碼問題打下了基礎。

關于作者:羅江宇,Flink技術專家,先后就職于新浪微博、滴滴和某大型電商公司。先后主導或參與了多家公司的Flink實時計算服務的構建、對超大規模集群的維護以及Flink引擎的改造。擁有豐富的實時計算實戰經驗,目前專注于Kubernetes調度、Flink SQL及Flink流批一體化方向。

趙士杰,資深大數據技術專家,曾就職于滴滴、阿里巴巴等一線互聯網公司。從0到1深度參與了滴滴的大數據建設,擁有非常豐富的大數據平臺一線建設經驗,對于大數據領域的計算和存儲引擎也有深入研究。

李涵淼,大數據研發專家,曾任滴滴大數據開發工程師。從事大數據領域工作多年,參與過多家公司流計算平臺的設計與研發,目前專注于批流一體、OLAP技術方向的研究與應用。

閔文俊,螞蟻集團技術專家、開源大數據社區愛好者、Flink Contributor,在實時計算領域工作多年,深度參與了滴滴、螞蟻集團的實時計算平臺建設。

本文摘編自《Flink技術內幕:架構設計與實現原理》,經出版方授權發布。(ISBN:9787111696292)

 

責任編輯:武曉燕 來源: 大數據DT
相關推薦

2021-09-26 16:08:23

CC++clang_forma

2022-07-22 12:45:39

GNU

2022-04-19 10:45:28

自動化簽名鴻蒙app操作系統

2021-07-14 09:00:00

JavaFX開發應用

2023-12-13 08:17:24

JPDAJavaDebug

2025-05-07 00:31:30

2011-05-03 15:59:00

黑盒打印機

2011-01-10 14:41:26

2024-01-26 08:16:48

Exporter開源cprobe

2021-06-04 05:18:29

ARM程序Gdbserver

2023-06-05 13:07:38

2022-03-14 14:47:21

HarmonyOS操作系統鴻蒙

2022-01-08 20:04:20

攔截系統調用

2022-07-27 08:16:22

搜索引擎Lucene

2022-12-07 08:42:35

2023-04-26 12:46:43

DockerSpringKubernetes

2011-02-22 13:46:27

微軟SQL.NET

2021-12-28 08:38:26

Linux 中斷喚醒系統Linux 系統

2021-02-26 11:54:38

MyBatis 插件接口

2020-08-12 09:07:53

Python開發爬蟲
點贊
收藏

51CTO技術棧公眾號

久久久亚洲综合| 国产成人精品免费视频| 日韩伦理在线一区| 中文字幕日韩在线播放| 日日狠狠久久偷偷综合色| 国产欧美日本在线| a亚洲天堂av| 搞黄视频免费在线观看| 在线观看精品国产视频| 色天天综合网| 国产妇女馒头高清泬20p多| 亚洲一区在线观看视频| 波多野结衣亚洲| 成人国产精品一区二区| 成人免费高清在线| h视频在线观看免费| 91精品国产高清| 国产麻豆成人传媒免费观看| 欧洲免费在线视频| 欧美极品少妇与黑人| 男人的天堂久久精品| 又黄又爽在线免费观看| 久久夜色精品国产亚洲aⅴ| 亚欧成人精品| 黄动漫在线看| 欧美高清视频在线播放| 美国三级日本三级久久99| 免费在线观看麻豆视频| 日韩有码视频在线| 日本不卡一区二区三区高清视频| 五丁香在线视频| 欧美一二三视频| 国产成人在线免费| 调教一区二区| 3d动漫精品啪啪一区二区三区免费| 国产午夜精品一区二区| 在线成人av观看| 日本一区二区三区视频在线播放| 精品国产31久久久久久| 91麻豆产精品久久久久久| 亚洲一区二区三区四区中文字幕| 国产精品论坛| 国产精品久久精品国产| 综合网在线视频| 69堂免费精品视频在线播放| 清纯唯美一区二区三区| 色欧美88888久久久久久影院| 日韩欧美影院| 国产综合免费视频| 日韩经典中文字幕在线观看| 噜噜噜91成人网| youjizz在线播放| 91中文字幕在线| 精品久久久久久久久久| 欧美日韩有码| 很黄很a的视频| 欧美在线xxx| 国产精品久久影院| 秋霞一区二区| 99精品人妻少妇一区二区| 亚洲欧洲在线观看| 麻豆精品久久精品色综合| 影音先锋男人资源在线| 成人一区二区三区四区| 欧美性xxxx在线播放| 欧美亚洲高清| 成人频在线观看| 国产欧美va欧美va香蕉在| 亚洲777理论| 亚洲色图国产| 淫片在线观看| 秋霞久久久久久一区二区| 欧美一区二区网站| 免费人成黄页网站在线一区二区 | 男人的天堂视频在线| 亚洲第一偷拍网| 国产专区欧美精品| 成人1区2区| 免费在线激情视频| 久久免费高清视频| 五月综合激情日本mⅴ| 国产精品地址| 国内老司机av在线| 免费超爽大片黄| 性欧美xxxx交| 欧美日韩免费网站| 亚洲免费综合| 在线成人视屏| 男女免费网站| av一区和二区| 精品亚洲aⅴ在线观看| 99久久er热在这里只有精品15| 精品综合久久88少妇激情| 在线观看免费网站| 蜜桃传媒视频麻豆一区 | 国产99久久久精品| 久久伊人影院| 日本xxxx高清色视频| 91gao视频| 亚洲成av人乱码色午夜| av电影天堂一区二区在线观看| av动漫精品一区二区| 中文在线资源在线| 日韩欧美一区二区视频在线播放| 中文字幕九色91在线| 亚洲激情图片qvod| 精久久久久久| 88xx成人免费观看视频库 | 国产精品日韩欧美| 91精品国产免费| 99精品久久99久久久久| 欧美呦呦网站| 国产丝袜视频在线播放| www黄色在线| 国产精品xxx在线观看www| 亚洲视频第一页| 玉足女爽爽91| 久久精品国产网站| 久久爱www成人| 黄网在线免费看| 热99在线观看| 日韩三级电影| 97免费视频在线| 欧美婷婷六月丁香综合色| 丁香婷婷综合五月| 综合视频在线| 国产精品2区| 国产免费a∨片在线观看不卡| 国产午夜精品视频一区二区三区| 国产精品黄视频| 亚洲人午夜色婷婷| 午夜国产精品一区| 国产99久久久国产精品| 亚洲成人二区| 精品69视频一区二区三区| 免费毛片在线| 91极品视频在线观看| 欧美日韩在线高清| 日本久久久久久久久| 亚洲精品中文字幕有码专区| 欧美性xxxxxxx| 国产日产欧产精品推荐色| 日韩精品一级中文字幕精品视频免费观看 | 欧美精品七区| 国产精品18久久久久久麻辣| 精品视频久久久| 婷婷成人综合网| 91免费观看视频在线| 水野朝阳av一区二区三区| 成人看的视频| 成人动漫视频| 日韩一区精品| 天使と恶魔の榨精在线播放| 日本五十路在线| 美女福利视频在线| 中文字幕99| 久久久久久亚洲精品不卡4k岛国 | 亚洲欧美一区二区三区| 四虎精品成人影院观看地址| 亚洲性生活网站| 香蕉视频在线网址| 国产九色精品| 国产精品日韩在线一区| 久久国产精品首页| 亚洲精品久久视频| 3d动漫精品啪啪一区二区竹菊| 亚洲成av人影院在线观看网| 国产精品久久午夜夜伦鲁鲁| 成人高清免费观看| 青青草国产精品97视觉盛宴| 欧美日韩亚洲一区三区| 不卡一区综合视频| 日韩福利视频一区| 亚洲国产中文在线| 成人国产精品入口免费视频| 金瓶狂野欧美性猛交xxxx| 日本免费在线观看| 国产精品一二三区视频| 黄页网址在线观看| 韩国版免费三体| 黄色国产网站在线观看| 色婷婷综合网站| 国产91色在线观看| 久久黄色免费看| 激情综合在线观看| 欧美成人一区二区在线观看| 日本香蕉视频在线观看| 亚洲国产一二三精品无码| 国产精品无码乱伦| 国产对白在线播放| 日本一区二区免费看| 欧美成人一区二区在线| 蜜桃麻豆91| 亚洲精品9999| 一区二区三区免费看| 三年中文高清在线观看第6集| 国产911在线观看| 免费成人午夜视频| 午夜激情在线观看视频| 2021av天天|