iT邦幫忙

2023 iThome 鐵人賽

DAY 17
1

開發 Java 不外乎都是使用 Eclipse 或是 IntelliJ,其他的都相對小眾。而 IntelliJ 又比 Eclipse 好用很多,所以我就只會用 IntelliJ 來說明。可以先到 https://www.jetbrains.com/idea/download/ 下載,免費(社區版) 就很夠用了,當然你要用付費版也沒什麼不好。而且,官方直接說 Eclipse 會有 Scala 的配置問題,並不推薦使用,

Scala (Optional)

Flink 是可以用 Scala 開發的,我自己是不熟,所以還是用 Java,但如果你熟 Scala 的話,可以這樣開啟相關的 plugin:

  1. IntelliJ Settings → Plugins → “Marketplace”。
  2. 安裝 “Scala” plugin。
  3. 重啟 IntelliJ

不過 Scala 未來會被移出 Flink,所以建議早點轉移到 Java

專案初始化

Maven

這個腳本會建立一個新專案

$ mvn archetype:generate                \
  -DarchetypeGroupId=org.apache.flink   \
  -DarchetypeArtifactId=flink-quickstart-java \
  -DarchetypeVersion=1.17.1

或是用這個

$ curl https://flink.apache.org/q/quickstart.sh | bash -s 1.17.1

POM 依賴

pom.xml 內要加一些 dependence, 主要有兩大塊:streaming 跟 TableAPI。可以混合也可以獨立使用,但 Table API 我還掌握得不好,所以建議用 streaming 即可,這也是我們使用 Flink 的主要目的。

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-streaming-java</artifactId>
    <version>${flink.version}</version>
    <scope>provided</scope>
</dependency>

當然,你基本上還需要 flink-runtime 來在 IDE 內直接執行 job。如果有用到一些外部資源,像是 Kafak 的話,還需要相關的 Connector,例如:

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-connector-kafka</artifactId>
    <version>${flink.version}</version>
    <scope>provided</scope>
</dependency>

最後,不要忘記測試:

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-test-utils</artifactId>
    <version>1.17.1</version>
    <scope>test</scope>
</dependency>

如此一來,你的專案應該就可以順利執行了。不過在 IDE 開啟不會看到 Web UI ,但你應該也不需要,因為一切都在你的 terminal 內運作。


上一篇
Flink 的本地安裝及啟動 - Day16
下一篇
Flink 介面說明 - Day18
系列文
用 Airflow & Flink 來開發 ETL 吧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言