docker?部署Flink和傳統(tǒng)部署的詳細(xì)過(guò)程

簡(jiǎn)單介紹
Flink 是一個(gè)開(kāi)源的、分布式的、高性能的流處理框架,主要特性有:狀態(tài)管理與容錯(cuò),事件時(shí)間與水位線,先進(jìn)的窗口模型,輕量級(jí)的分布式快照,端到端的精確一次交付,流批一體與統(tǒng)一的 API,復(fù)雜的流處理拓?fù)渑c高級(jí) API(側(cè)輸出,CEP:復(fù)雜事件處理庫(kù),Table API & SQL)等
下載地址: https://mirrors.aliyun.com/apache/flink/ z根據(jù)需求選版本

下載安裝包
https://mirrors.aliyun.com/apache/flink/flink-1.20.3/flink-1.20.3-bin-scala_2.12.tgz
解壓
tra -zxf flink-1.20.3-bin-scala_2.12.tgz
修改配置文件

jobmanager.rpc.address: master jobmanager.rpc.port: 6123 jobmanager.bind-host: 0.0.0.0 jobmanager.memory.process.size: 1600m taskmanager.bind-host: 0.0.0.0 taskmanager.host: master taskmanager.memory.process.size: 1728m taskmanager.numberOfTaskSlots: 2 parallelism.default: 2 jobmanager.execution.failover-strategy: region rest.address: localhost rest.bind-address: 0.0.0.0
啟動(dòng)
bin/start-cluster.sh
登錄首頁(yè): http://192.168.115.102:8081
Docker Run
拉取鏡像
x86架構(gòu) docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/flink arm架構(gòu) docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_flink
- 創(chuàng)建網(wǎng)絡(luò)
docker network create flink-network
- 啟動(dòng)JobManager
docker run -d \ --name=flink-jobmanager \ --network=flink-network \ -p 8081:8081 \ -e FLINK_PROPERTIES="jobmanager.rpc.address: flink-jobmanager" \ -v /data/flink:/opt/flink/data \ registry.cn-hangzhou.aliyuncs.com/qiluo-images/flink \ jobmanager
- 啟動(dòng)TaskManager
docker run -d \ --name=flink-taskmanager \ --network=flink-network \ -e FLINK_PROPERTIES="jobmanager.rpc.address: flink-jobmanager" \ -v /data/flink:/opt/flink/data \ registry.cn-hangzhou.aliyuncs.com/qiluo-images/flink \ taskmanager
帶依賴(lài)的完整版本
docker-compose-full.yml
version: "3.8"
services:
jobmanager:
image: registry.cn-hangzhou.aliyuncs.com/qiluo-images/flink
container_name: jobmanager
ports:
- "8081:8081"
- "6123:6123"
command: jobmanager
environment:
- FLINK_PROPERTIES=jobmanager.rpc.address: jobmanager
volumes:
- ./data/jobmanager:/opt/flink/data
- ./logs/jobmanager:/opt/flink/log
- ./apps:/opt/flink/apps
networks:
- flink-network
taskmanager:
image: flink:1.17.2
container_name: taskmanager
depends_on:
- jobmanager
command: taskmanager
scale: 2
environment:
- FLINK_PROPERTIES=jobmanager.rpc.address: jobmanager
- TASK_MANAGER_NUMBER_OF_TASK_SLOTS=4
volumes:
- ./data/taskmanager:/opt/flink/data
- ./logs/taskmanager:/opt/flink/log
- ./apps:/opt/flink/apps
networks:
- flink-network
zookeeper:
image: registry.cn-hangzhou.aliyuncs.com/qiluo-images/zookeeper
container_name: zookeeper
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
ports:
- "2181:2181"
networks:
- flink-network
kafka:
image: registry.cn-hangzhou.aliyuncs.com/qiluo-images/kafka
container_name: kafka
depends_on:
- zookeeper
environment:
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092
- ALLOW_PLAINTEXT_LISTENER=yes
ports:
- "9092:9092"
networks:
- flink-network
networks:
flink-network:
driver: bridge
volumes:
flink-data:使用SQL Client的完整環(huán)境
docker-compose-sql.yml
version: "3.8"
services:
jobmanager:
image: registry.cn-hangzhou.aliyuncs.com/qiluo-images/flink
container_name: flink-jobmanager
ports:
- "8081:8081"
- "6123:6123"
command: jobmanager
environment:
- FLINK_PROPERTIES=
jobmanager.rpc.address: jobmanager
taskmanager.numberOfTaskSlots: 4
parallelism.default: 2
volumes:
- ./data/jobmanager:/opt/flink/data
- ./logs/jobmanager:/opt/flink/log
networks:
- flink-network
taskmanager:
image: registry.cn-hangzhou.aliyuncs.com/qiluo-images/flink
container_name: flink-taskmanager
depends_on:
- jobmanager
command: taskmanager
scale: 2
environment:
- FLINK_PROPERTIES=
jobmanager.rpc.address: jobmanager
taskmanager.numberOfTaskSlots: 4
parallelism.default: 2
volumes:
- ./data/taskmanager:/opt/flink/data
- ./logs/taskmanager:/opt/flink/log
networks:
- flink-network
sql-client:
image: registry.cn-hangzhou.aliyuncs.com/qiluo-images/flink
container_name: flink-sql-client
depends_on:
- jobmanager
command: |
bash -c "
echo 'Waiting for Flink cluster to be ready...'
while ! nc -z jobmanager 8081; do
sleep 1
done
echo 'Starting SQL Client...'
./bin/sql-client.sh"
volumes:
- ./sql-scripts:/opt/flink/sql-scripts
networks:
- flink-network
tty: true
stdin_open: true
networks:
flink-network:
driver: bridge到此這篇關(guān)于docker 部署Flink和傳統(tǒng)部署的詳細(xì)過(guò)程的文章就介紹到這了,更多相關(guān)docker 部署Flink內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker多個(gè)容器不能有相同端口號(hào)的處理方案
這篇文章主要介紹了Docker多個(gè)容器不能有相同端口號(hào)的處理方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Docker學(xué)習(xí)筆記之容器查看啟動(dòng)終止刪除的方法
本篇文章主要Docker學(xué)習(xí)筆記之容器查看啟動(dòng)終止刪除的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
使用Docker將容器目錄掛載到主機(jī)上的實(shí)現(xiàn)方法
本文主要介紹了使用Docker將容器目錄掛載到主機(jī)上的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
Docker 和 Containerd 目錄結(jié)構(gòu)及存儲(chǔ)機(jī)制詳解
Docker和Containerd是兩種流行的容器運(yùn)行時(shí)工具,它們都有自己的目錄結(jié)構(gòu)和存儲(chǔ)機(jī)制,本文詳細(xì)介紹了Docker和Containerd的目錄結(jié)構(gòu)和存儲(chǔ)機(jī)制,并對(duì)比了它們之間的主要區(qū)別,包括存儲(chǔ)路徑、掛載點(diǎn)管理、配置文件和日志文件,感興趣的朋友一起看看吧2025-02-02
Docker Compose 容器編排的實(shí)現(xiàn)
本文主要介紹了Docker Compose 容器編排的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
docker-compose限制容器cpu和內(nèi)存方式
這篇文章主要介紹了docker-compose限制容器cpu和內(nèi)存方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
docker的WARNING:bridge-nf-call-iptables is disabled
這篇文章主要介紹了docker的WARNING:bridge-nf-call-iptables is disabled的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02

