聊聊Flink:Docker搭建Flink
一、準(zhǔn)備工作
查看下Docker和Docker Compose版本,確保你安裝了這些軟件。
在 Flink 官網(wǎng)上下載 Flink 的 Docker 鏡像。您可以使用以下命令從 Docker Hub 中下載:
docker pull flink:1.18.0-scala_2.12
此命令將下載 Flink 1.18.0 版本的 Docker 鏡像,并且使用 Scala 2.12 進(jìn)行編譯。
二、編寫Docker Compose文件
Docker Compose可以通過一個YAML文件來定義和管理多個容器的服務(wù)。我們將使用Docker Compose來定義Flink集群的容器服務(wù)。
創(chuàng)建一個 docker-compose.yml 文件,該文件描述了您要啟動的容器及其配置。下面是一個基本的示例文件:
version: '3'
services:
jobmanager:
image: flink:1.18.0-scala_2.12
command: jobmanager
ports:
- "8081:8081"
volumes:
- ./settings/:/settings
- ./data/:/data
environment:
- |
FLINK_PROPERTIES=
jobmanager.rpc.address: jobmanager
restart: always
taskmanager:
image: flink:1.18.0-scala_2.12
command: taskmanager
depends_on:
- jobmanager
scale: 1
environment:
- |
FLINK_PROPERTIES=
jobmanager.rpc.address: jobmanager
taskmanager.numberOfTaskSlots: 20
volumes:
- ./settings/:/settings
- ./data/:/data
restart: always
上述代碼定義了兩個服務(wù):jobmanager和taskmanager。jobmanager用于管理Flink作業(yè),taskmanager用于執(zhí)行Flink作業(yè)的任務(wù)。
三、構(gòu)建和啟動容器
在終端中,切換到包含docker-compose.yml文件的目錄,然后執(zhí)行以下命令構(gòu)建和啟動容器:
docker-compose up -d
以上命令將會以后臺模式啟動Flink容器集群
四、訪問Flink Web界面
一旦容器啟動完成,可以通過瀏覽器訪問Flink Web界面。在瀏覽器中輸入http://localhost:8081,即可訪問Flink的Web界面。在該界面中,可以查看作業(yè)列表、監(jiān)控任務(wù)狀態(tài)等信息。
五、提交Flink作業(yè)
現(xiàn)在,可以通過Flink Web界面提交和管理Flink作業(yè)。首先,將一個Flink作業(yè)的JAR文件上傳到Flink Web界面。然后,通過界面上的操作,選擇相應(yīng)的作業(yè)并點(diǎn)擊Submit按鈕來提交作業(yè)。
另外,也可以通過命令行方式提交Flink作業(yè)。在終端中,執(zhí)行以下命令來提交Flink作業(yè):
docker exec -it <jobmanager_container_id> flink run -m taskmanager:8081 /path/to/job.jar
其中,是Flink集群中jobmanager容器的ID,/path/to/job.jar是Flink作業(yè)的JAR文件路徑。
注意:上面的提交是舊的方式,筆者這里用的Flink 1.18版本,上面的命令行已經(jīng)舍棄了。
//先把你本地的jar包文件
docker cp /你的文件目錄/flink-release-1.18.0/flink-reimann-test/target/flink-reimann-test-1.18.0.jar:/opt/flink/test
docker exec -it/bin/bash
bin/flink run -c org.apache.flink.PartitionerTest test/flink-reimann-test-1.18.0.jar
Web界面會展示剛才跑的任務(wù)
還有一種界面上提交任務(wù)的方式,我這里就不說了,留給你自己去探索。
六、關(guān)閉容器
當(dāng)不再需要使用Flink集群時,可以通過以下命令關(guān)閉并刪除容器:
docker-compose down
歡 迎 大 家 關(guān) 注 我 的 公 眾 號 【 老 周 聊 架 構(gòu) 】 ,AI 、大數(shù)據(jù)、云原生、物聯(lián)網(wǎng)等相關(guān)領(lǐng)域的技術(shù)知識分享。
