国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Flink】基于Docker下的Flink運(yùn)行環(huán)境搭建(Mac)

這篇具有很好參考價(jià)值的文章主要介紹了【Flink】基于Docker下的Flink運(yùn)行環(huán)境搭建(Mac)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔


前言

創(chuàng)建一個(gè)本地運(yùn)行環(huán)境是提高開發(fā)效率和便捷進(jìn)行代碼調(diào)試的關(guān)鍵。我們將一起構(gòu)建一個(gè)本地環(huán)境,專門用于執(zhí)行Flink任務(wù)。

此環(huán)境以Flink 1.17.2版本為基礎(chǔ),采用Docker技術(shù)搭建而成。通過這種方式,我們能夠模擬出一個(gè)接近實(shí)際生產(chǎn)環(huán)境的運(yùn)行條件,幫助我們更好地測試和優(yōu)化我們的Flink應(yīng)用。

代碼鏈接: flink_study_notes

一、環(huán)境搭建

選擇flink版本

選擇自己實(shí)際應(yīng)用的flink版本,本次我選擇1.17.2flink版本作為演示版本。
鏈接: Docker-Hub-flink-1.17.2
flink maven docker,flink,flink,docker,macos
flink maven docker,flink,flink,docker,macos
鏡像說明:

  • flink 1.13.0
  • flink 內(nèi)置 :scala 版本 2.12,Java 版本 8

配置文件準(zhǔn)備

獲取配置文件

為了輕松獲得完整的配置設(shè)置,建議首先啟動(dòng)鏡像,然后將內(nèi)置的配置文件復(fù)制到外部。這一步驟將簡化未來對配置的修改以及環(huán)境的快速部署。通過預(yù)先準(zhǔn)備好配置文件,你可以避免從零開始的重復(fù)工作,并能夠快速地調(diào)整和應(yīng)用新的配置參數(shù)。

生成配置文件

為環(huán)境創(chuàng)建一個(gè)獨(dú)立的網(wǎng)絡(luò)1

使用Docker網(wǎng)絡(luò)可以讓你將多個(gè)容器連接在一起,允許容器間相互通信并組成一個(gè)隔離的網(wǎng)絡(luò)環(huán)境,類似于在宿主機(jī)上創(chuàng)建一個(gè)虛擬子網(wǎng)。

 docker network create flink-network

創(chuàng)建JobManager

docker run \
  -itd \
  --name=jobmanager \
  --publish 8081:8081 \
  --network flink-network \
  --env FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager" \
  flink:1.17.2-scala_2.12-java8 jobmanager 

創(chuàng)建 TaskManager

docker run \
  -itd \
  --name=taskmanager \
  --network flink-network \
  --env FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager" \
  flink:1.17.2-scala_2.12-java8 taskmanager 

運(yùn)行結(jié)果
flink maven docker,flink,flink,docker,macos

命令與參數(shù)解析

這條命令在flink-network網(wǎng)絡(luò)下以后臺模式運(yùn)行一個(gè)新的Flink
TaskManager容器,容器名稱為taskmanager,并將作業(yè)管理器的RPC地址設(shè)置為同網(wǎng)絡(luò)中的jobmanager容器。

  • –network flink-network: 將容器連接到預(yù)先創(chuàng)建的網(wǎng)絡(luò)flink-network,容器將使用該網(wǎng)絡(luò)的配置與其他容器通信。
  • –env FLINK_PROPERTIES=“jobmanager.rpc.address: jobmanager”: 設(shè)置環(huán)境變量FLINK_PROPERTIES。該變量定義了Apache
    Flink的配置,jobmanager.rpc.address是指明連接到的JobManager的地址,在這里被設(shè)置為容器名稱jobmanager,表示TaskManager將會(huì)連接到同一Docker網(wǎng)絡(luò)內(nèi)名為jobmanager的容器。
文件拷貝至本地
#本地創(chuàng)建目錄
mkdir -p ~/app/flink/
#進(jìn)入目錄
cd ~/app/flink/
# jobmanager 容器
docker cp jobmanager:/opt/flink/conf ./JobManager/
# taskmanager 容器
docker cp taskmanager:/opt/flink/conf ./TaskManager/

命令說明:
該命令會(huì)將名為jobmanager|taskmanager的容器的/opt/flink/conf目錄中的內(nèi)容復(fù)制到當(dāng)前工作目錄下的JobManager|TaskManager文件夾中。這樣做的目的是為了方便修改Flink的配置文件。

刪除容器
docker rm -f taskmanager
docker rm -f jobmanager
修改配置
#修改 JobManager/flink-conf.yaml web 端口號為 18081
rest.port: 18081

flink maven docker,flink,flink,docker,macos

#修改 TaskManager/flink-conf.yaml 容器任務(wù)槽為 5
taskmanager.numberOfTaskSlots: 5

flink maven docker,flink,flink,docker,macos

重新掛載并創(chuàng)建容器

啟動(dòng) jobmanager

docker run \
-itd  \
-v ~/app/flink/JobManager/:/opt/flink/conf/ \
--name=jobmanager \
--publish 18081:18081 \
--env FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager" \
--network flink-network flink:1.17.2-scala_2.12-java8 jobmanager

啟動(dòng) taskmanager

docker run \
-itd  \
-v ~/app/flink/TaskManager/:/opt/flink/conf/ \
--name=taskmanager --network flink-network \
--env FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager"  \
flink:1.17.2-scala_2.12-java8 taskmanager

容器啟動(dòng)成功
flink maven docker,flink,flink,docker,macos
鏈接: 訪問地址
flink maven docker,flink,flink,docker,macos

二、Flink example

官網(wǎng)地址: 項(xiàng)目配置

創(chuàng)建項(xiàng)目腳手架

maven命令:根據(jù)自己實(shí)際情況修改

mvn archetype:generate \
 -DarchetypeGroupId=org.apache.flink  \
 -DarchetypeArtifactId=flink-quickstart-java  \
 -DarchetypeVersion=1.17.2 \
 -DgroupId=cn.demo  \
 -DartifactId=flink_study_notes  \
 -Dversion=0.1 \
 -Dpackage=cn.demo \
 -DinteractiveMode=false

命令解釋:
這個(gè)命令的功能是創(chuàng)建一個(gè)新的Maven項(xiàng)目,項(xiàng)目類型是Apache Flink的Java快速開始項(xiàng)目,項(xiàng)目的groupId是cn.demo,artifactId是flink_study_notes,版本號是0.1,最終項(xiàng)目的包路徑也是cn.demo。并且在指定這些參數(shù)后,禁用了交互,所以該命令可以自動(dòng)完成所有操作無需任何用戶交互。

打開工程
flink maven docker,flink,flink,docker,macos
provided: 項(xiàng)目中provided作為默認(rèn)參數(shù),可以讓你更加精確地管理你的依賴關(guān)系,在你的項(xiàng)目環(huán)境中提供所需的資源,而在實(shí)際運(yùn)行環(huán)境中,則由運(yùn)行平臺或者容器來提供。但是在本地ide中運(yùn)行時(shí)會(huì)有如下錯(cuò)誤:
flink maven docker,flink,flink,docker,macos
為了解決這個(gè)問題,我們需要在ide appliation運(yùn)行配置中進(jìn)行如下設(shè)置:
flink maven docker,flink,flink,docker,macos

批處理示例

import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;

public class DataBatchJob {
    public static void main(String[] args) throws Exception {
        final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        DataStreamSource<String> streamSource = env.fromElements("world count", "hello world", "hello flink", "flink", "hello",
                "hello world", "hello flink", "flink", "hello", "world");
        SingleOutputStreamOperator<Tuple2<String, Integer>> streamOperator = streamSource.flatMap(new FlatMapFunction<String, Tuple2<String, Integer>>() {
            @Override
            public void flatMap(String value, org.apache.flink.util.Collector<Tuple2<String, Integer>> out) throws Exception {
                String[] split = value.split(" ");
                for (String s : split) {
                    out.collect(Tuple2.of(s, 1));
                }
            }
        });
        streamOperator.keyBy(value -> value.f0).sum(1).print();
        env.execute("count the number of times a word appears");
    }
}

流處理示例

import org.apache.flink.api.common.typeinfo.Types;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.util.Collector;

public class DataStreamJob {
	public static void main(String[] args) throws Exception {
		StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
		env.setParallelism(3);
		DataStreamSource<String> socketDS = env.socketTextStream("127.0.0.1", 7777);
		SingleOutputStreamOperator<Tuple2<String, Integer>> sum = socketDS
				.flatMap(
						(String value, Collector<Tuple2<String, Integer>> out) -> {
							String[] words = value.split(" ");
							for (String word : words) {
								out.collect(Tuple2.of(word, 1));
							}
						}
				)
				.setParallelism(2)
				.returns(Types.TUPLE(Types.STRING, Types.INT))
				.keyBy(value -> value.f0)
				.sum(1);
		sum.print();
		env.execute();
	}
}

運(yùn)行結(jié)果:
flink maven docker,flink,flink,docker,macos
flink maven docker,flink,flink,docker,macos

jar包上傳flink集群運(yùn)行

flink maven docker,flink,flink,docker,macos

方式一:界面提交

flink maven docker,flink,flink,docker,macos

方式二: 命令提交
#提交任務(wù)
flink run -m 127.0.0.1:18081 -c cn.demo.DataBatchJob  -p 2 flink_study_notes-0.1.jar
#取消任務(wù)
flink cancle <JobID>
界面效果

flink maven docker,flink,flink,docker,macos
flink maven docker,flink,flink,docker,macos


  1. 當(dāng)你創(chuàng)建了一個(gè)如flink-network的自定義網(wǎng)絡(luò)后,你可以在啟動(dòng)Docker容器時(shí)使用--network標(biāo)志將容器附加到這個(gè)網(wǎng)絡(luò)上,例如docker run --network flink-network your-image。這使得容器能夠以更細(xì)粒度的網(wǎng)絡(luò)設(shè)置進(jìn)行通信,并且比默認(rèn)的橋接網(wǎng)絡(luò)提供更好的安全性和靈活性。 ??文章來源地址http://www.zghlxwxcb.cn/news/detail-827962.html

到了這里,關(guān)于【Flink】基于Docker下的Flink運(yùn)行環(huán)境搭建(Mac)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Flink高手之路:Flink的環(huán)境搭建

    Flink高手之路:Flink的環(huán)境搭建

    本地單機(jī)模式,一般用于測試環(huán)境是否搭建成功,很少使用 flink 自帶集群,開發(fā)測試使用 StandAloneHA :獨(dú)立集群的高可用模式,也是 flink 自帶,用于開發(fā)測試環(huán)境 計(jì)算資源統(tǒng)一由hadoop yarn管理,生產(chǎn)環(huán)境使用 ? 上傳到hadoop001 [root@hadoop001 software]# tar -xzvf flink-1.12.2-bin-scala_2.1

    2023年04月24日
    瀏覽(91)
  • Apache Flink連載(十八):Flink On Yarn運(yùn)行原理及環(huán)境準(zhǔn)備

    Apache Flink連載(十八):Flink On Yarn運(yùn)行原理及環(huán)境準(zhǔn)備

    ??? 個(gè)人主頁:IT貧道-CSDN博客 ??? 私聊博主:私聊博主加WX好友,獲取更多資料哦~ ??? 博主個(gè)人B棧地址:豹哥教你學(xué)編程的個(gè)人空間-豹哥教你學(xué)編程個(gè)人主頁-嗶哩嗶哩視頻 目錄 1.?Flink On Yarn運(yùn)行原理

    2024年02月03日
    瀏覽(22)
  • 206.Flink(一):flink概述,flink集群搭建,flink中執(zhí)行任務(wù),單節(jié)點(diǎn)、yarn運(yùn)行模式,三種部署模式的具體實(shí)現(xiàn)

    206.Flink(一):flink概述,flink集群搭建,flink中執(zhí)行任務(wù),單節(jié)點(diǎn)、yarn運(yùn)行模式,三種部署模式的具體實(shí)現(xiàn)

    Flink官網(wǎng)地址:Apache Flink? — Stateful Computations over Data Streams | Apache Flink Flink是一個(gè) 框架 和 分布式處理引擎 ,用于對 無界 和 有界 數(shù)據(jù)流進(jìn)行 有狀態(tài)計(jì)算 。 無界流(流): 有定義流的開始,沒有定義結(jié)束。會(huì)無休止產(chǎn)生數(shù)據(jù) 無界流數(shù)據(jù)必須持續(xù)處理 有界流(批): 有定

    2024年02月11日
    瀏覽(21)
  • Flink第一章:環(huán)境搭建

    Flink第一章:環(huán)境搭建

    Flink第一章:環(huán)境搭建 Flink也是現(xiàn)在現(xiàn)在大數(shù)據(jù)技術(shù)中火爆的一門,反正大數(shù)據(jù)的熱門技術(shù)學(xué)的也差不多了,啃完Flink基本的大數(shù)據(jù)技術(shù)就差不多哦學(xué)完了. 略 這里說明一下我選擇的環(huán)境. java8 scala2.12 flink采用最新的1.17 請大家根據(jù)自己的環(huán)境更換版本 注 :這里使用DataSet對數(shù)據(jù)進(jìn)行

    2024年02月04日
    瀏覽(93)
  • flink cdc環(huán)境搭建

    flink cdc環(huán)境搭建

    1.下載flink 2.修改flink-conf.yaml #根據(jù)自己電腦核數(shù)修改,這里我設(shè)置為4,因?yàn)橄到y(tǒng)分配了4核 jobmanager.rpc.address: localhost #主機(jī)名根據(jù)自己設(shè)定 taskmanager.numberOfTaskSlots: 4 ?3.下載flink-sql mysql cdc包 flink-sql-connector-mysql-cdc-1.2.0.jar 4.下載fink jdbc包 ?5.下載flink changelog-json數(shù)據(jù)格式包 6.將以

    2024年02月15日
    瀏覽(88)
  • Flink編程——基礎(chǔ)環(huán)境搭建

    Flink編程——基礎(chǔ)環(huán)境搭建

    準(zhǔn)備環(huán)境搭建 我們先把電腦的準(zhǔn)備環(huán)境給安裝好,這樣后面才能順利的學(xué)習(xí)和時(shí)間 因?yàn)楹竺婵赡苡玫降挠校篕afka、MySQL、ElasticSearch 等,另外像 Flink 編寫程序還需要依賴Java,還有就是我們項(xiàng)目是用 Maven來管理依賴的,所以需要把這些環(huán)境搭建起來,如果可以的話也可以把Ha

    2024年01月23日
    瀏覽(437)
  • flink1.13環(huán)境搭建

    flink1.13環(huán)境搭建

    最簡單的啟動(dòng)方式,其實(shí)是不搭建集群,直接本地啟動(dòng)。本地部署非常簡單,直接解壓安裝包就可以使用,不用進(jìn)行任何配置;一般用來做一些簡單的測試。 具體安裝步驟如下: 1.1 下載安裝包 進(jìn)入 Flink 官網(wǎng),下載 1.13.0 版本安裝包 flink-1.13.0-bin-scala_2.12.tgz,注意此處選用對

    2024年01月22日
    瀏覽(96)
  • 【Flink SQL】Flink SQL 基礎(chǔ)概念(一):SQL & Table 運(yùn)行環(huán)境、基本概念及常用 API

    《 Flink SQL 基礎(chǔ)概念 》系列,共包含以下 5 篇文章: Flink SQL 基礎(chǔ)概念(一):SQL Table 運(yùn)行環(huán)境、基本概念及常用 API Flink SQL 基礎(chǔ)概念(二):數(shù)據(jù)類型 Flink SQL 基礎(chǔ)概念(三):SQL 動(dòng)態(tài)表 連續(xù)查詢 Flink SQL 基礎(chǔ)概念(四):SQL 的時(shí)間屬性 Flink SQL 基礎(chǔ)概念(五):SQL 時(shí)區(qū)問

    2024年03月21日
    瀏覽(99)
  • 【極數(shù)系列】Flink環(huán)境搭建(02)

    【極數(shù)系列】Flink環(huán)境搭建(02)

    tips:下載地址https://repo.huaweicloud.com/java/jdk/ 雙擊解壓后jdk的exe運(yùn)行文件 tips:一般不安裝在C盤,修改路徑,接著直接next 此電腦–屬性–高級系統(tǒng)設(shè)置–環(huán)境變量–找到系統(tǒng)變量path–選擇新建–把jdk與jre目錄均加上 進(jìn)入oracle目錄,如我的是C:ProgramDataOracleJavajavapath,刪除該

    2024年01月24日
    瀏覽(87)
  • 搭建單機(jī)版K8S運(yùn)行Flink集群

    環(huán)境要求 操作系統(tǒng): CentOS 7.x 64位 Kubernetes版本:v1.16.2 Docker版本:19.03.13-ce Flink版本:1.14.3 使用中國YUM及鏡像源? 1.安裝Kubernetes: 1.1 創(chuàng)建文件:/etc/yum.repos.d/kubernetes.repo,內(nèi)容如下: 1.2??執(zhí)行安裝命令: ?1.3?啟動(dòng)kubelet服務(wù)并設(shè)置開機(jī)自啟: 2.安裝Docker: 2.1 創(chuàng)建文件:

    2023年04月26日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包