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

大數(shù)據(jù)學(xué)習(xí)之Flink算子、了解DataStream API(基礎(chǔ)篇一)

這篇具有很好參考價值的文章主要介紹了大數(shù)據(jù)學(xué)習(xí)之Flink算子、了解DataStream API(基礎(chǔ)篇一)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

DataStream API (基礎(chǔ)篇)


注: 本文只涉及DataStream

  • 原因:隨著大數(shù)據(jù)和流式計算需求的增長,處理實時數(shù)據(jù)流變得越來越重要。因此,DataStream由于其處理實時數(shù)據(jù)流的特性和能力,逐漸替代了DataSet成為了主流的數(shù)據(jù)處理方式。

目錄

DataStream API (基礎(chǔ)篇)

前摘:

一、執(zhí)行環(huán)境

1. 創(chuàng)建執(zhí)行環(huán)境

2. 執(zhí)行模式

3. 觸發(fā)程序執(zhí)行

二、源算子(source)

三、轉(zhuǎn)換算子(Transformation)

四、輸出算子(sink)


前摘:

一個 Flink 程序,其實就是對 DataStream 的各種轉(zhuǎn)換。具體來說,代碼基本上都由以下幾 部分構(gòu)成,如圖所示:

  • 獲取執(zhí)行環(huán)境(Execution Environment)
  • 讀取數(shù)據(jù)源(Source)
  • 定義基于數(shù)據(jù)的轉(zhuǎn)換操作(Transformations)
  • 定義計算結(jié)果的輸出位置(Sink)
  • 觸發(fā)程序執(zhí)行(Execute)

其中,獲取環(huán)境和觸發(fā)執(zhí)行,都可以認(rèn)為是針對執(zhí)行環(huán)境的操作。所以本章我們就從執(zhí)行 環(huán)境、數(shù)據(jù)源(source)、轉(zhuǎn)換操作(Transformation)、輸出(Sink)四大部分,對常用的 DataStream API 做基本介紹。

大數(shù)據(jù)學(xué)習(xí)之Flink算子、了解DataStream API(基礎(chǔ)篇一),Flink,算子,大數(shù)據(jù),學(xué)習(xí),flink

一、執(zhí)行環(huán)境

1. 創(chuàng)建執(zhí)行環(huán)境

  • 編寫Flink程序的第一步就是創(chuàng)建執(zhí)行環(huán)境。
  • 我 們 要 獲 取 的 執(zhí) 行 環(huán) 境 , 是 StreamExecutionEnvironment 類的對象,這是所有 Flink 程序的基礎(chǔ)
  • 在代碼中創(chuàng)建執(zhí)行環(huán)境的 方式,就是調(diào)用這個類的靜態(tài)方法,具體有以下三種。
  1. getExecutionEnvironment
    最簡單的方式,就是直接調(diào)用 getExecutionEnvironment 方法。它會根據(jù)當(dāng)前運(yùn)行的上下文 直接得到正確的結(jié)果;
    //此處的 env 是 StreamExecutionEnvironment 對象
    val env = StreamExecutionEnvironment.getExecutionEnvironment
  2. createLocalEnvironment
    這個方法返回一個本地執(zhí)行環(huán)境。可以在調(diào)用時傳入一個參數(shù),指定默認(rèn)的并行度;如果 不傳入,則默認(rèn)并行度就是本地的 CPU 核心數(shù)。
    //此處的 localEnvironment 是 StreamExecutionEnvironment 對象
    val localEnvironment = StreamExecutionEnvironment.createLocalEnvironment()
    
  3. createRemoteEnvironment
    這個方法返回集群執(zhí)行環(huán)境。需要在調(diào)用時指定 JobManager 的主機(jī)名和端口號,并指定 要在集群中運(yùn)行的 Jar 包。

    //此處的 remoteEnv 是 StreamExecutionEnvironment 對象
    val remoteEnv = StreamExecutionEnvironment
     .createRemoteEnvironment(
     "host", // JobManager 主機(jī)名
     1234, // JobManager 進(jìn)程端口號
     "path/to/jarFile.jar" // 提交給 JobManager 的 JAR 包
    )
    

2. 執(zhí)行模式

而從 1.12.0 版本起,F(xiàn)link 實現(xiàn)了 API 上的流批統(tǒng)一。DataStream API 新增了一個重要特 性:可以支持不同的“執(zhí)行模式”(execution mode),通過簡單的設(shè)置就可以讓一段 Flink 程序 在流處理和批處理之間切換。這樣一來,DataSet API 也就沒有存在的必要了。

  • 流執(zhí)行模式(STREAMING) 這是 DataStream API 最經(jīng)典的模式,一般用于需要持續(xù)實時處理的無界數(shù)據(jù)流。默認(rèn)情 況下,程序使用的就是 STREAMING 執(zhí)行模式。
  • 批執(zhí)行模式(BATCH) 專門用于批處理的執(zhí)行模式, 這種模式下,F(xiàn)link 處理作業(yè)的方式類似于 MapReduce 框架。 對于不會持續(xù)計算的有界數(shù)據(jù),我們用這種模式處理會更方便。
  • 自動模式(AUTOMATIC) 在這種模式下,將由程序根據(jù)輸入數(shù)據(jù)源是否有界,來自動選擇執(zhí)行模式

由于 Flink 程序默認(rèn)是 STREAMING 模式,我們這里重點介紹一下 BATCH 模式的配置。 主要有兩種方式:

(1)通過命令行配置

bin/flink run -Dexecution.runtime-mode=BATCH ...

在提交作業(yè)時,增加 execution.runtime-mode 參數(shù),指定值為 BATCH。

(2)通過代碼配置

val env = StreamExecutionEnvironment.getExecutionEnvironment
env.setRuntimeMode(RuntimeExecutionMode.BATCH)

3. 觸發(fā)程序執(zhí)行

我們需要顯式地調(diào)用執(zhí)行環(huán)境的 execute()方法,來觸發(fā)程序執(zhí)行。execute()方法將一直等 待作業(yè)完成,然后返回一個執(zhí)行結(jié)果(JobExecutionResult)。

env.execute()

二、源算子(source)

Source源算子(基礎(chǔ)篇二)

三、轉(zhuǎn)換算子(Transformation)

Transformation轉(zhuǎn)換算子(基礎(chǔ)篇三)

四、輸出算子(sink)

持續(xù)更新中文章來源地址http://www.zghlxwxcb.cn/news/detail-817784.html

到了這里,關(guān)于大數(shù)據(jù)學(xué)習(xí)之Flink算子、了解DataStream API(基礎(chǔ)篇一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【Flink-1.17-教程】-【四】Flink DataStream API(2)轉(zhuǎn)換算子(Transformation)【基本轉(zhuǎn)換算子、聚合算子】

    【Flink-1.17-教程】-【四】Flink DataStream API(2)轉(zhuǎn)換算子(Transformation)【基本轉(zhuǎn)換算子、聚合算子】

    數(shù)據(jù)源讀入數(shù)據(jù)之后,我們就可以使用各種轉(zhuǎn)換算子,將一個或多個 DataStream 轉(zhuǎn)換為新的 DataStream。 map 是大家非常熟悉的大數(shù)據(jù)操作算子,主要用于將數(shù)據(jù)流中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,形成新的數(shù)據(jù)流。簡單來說,就是一個 “一 一映射”,消費(fèi)一個元素就產(chǎn)出一個元素 。 我們只

    2024年01月23日
    瀏覽(19)
  • 【Flink-1.17-教程】-【四】Flink DataStream API(1)源算子(Source)

    【Flink-1.17-教程】-【四】Flink DataStream API(1)源算子(Source)

    DataStream API 是 Flink 的核心層 API。一個 Flink 程序,其實就是對 DataStream 的各種轉(zhuǎn)換。具體來說,代碼基本上都由以下幾部分構(gòu)成: Flink 程序可以在各種上下文環(huán)境中運(yùn)行:我們可以在本地 JVM 中執(zhí)行程序,也可以提交到遠(yuǎn)程集群上運(yùn)行。 不同的環(huán)境,代碼的提交運(yùn)行的過程會

    2024年01月22日
    瀏覽(33)
  • 【Flink-1.17-教程】-【四】Flink DataStream API(5)轉(zhuǎn)換算子(Transformation)【分流】

    所謂 “分流” ,就是將一條數(shù)據(jù)流拆分成完全獨(dú)立的兩條、甚至多條流。也就是基于一個 DataStream ,定義一些篩選條件,將符合條件的數(shù)據(jù)揀選出來放到對應(yīng)的流里。 其實根據(jù)條件篩選數(shù)據(jù)的需求,本身非常容易實現(xiàn):只要針對同一條流多次獨(dú)立調(diào)用 .filter() 方法進(jìn)行篩選

    2024年01月24日
    瀏覽(17)
  • 【Flink-1.17-教程】-【四】Flink DataStream API(3)轉(zhuǎn)換算子(Transformation)【用戶自定義函數(shù)(UDF)】

    用戶自定義函數(shù)( user-defined function , UDF ),即用戶可以根據(jù)自身需求,重新實現(xiàn)算子的邏輯。 用戶自定義函數(shù)分為: 函數(shù)類 、 匿名函數(shù) 、 富函數(shù)類 。 Flink 暴露了所有 UDF 函數(shù)的接口,具體實現(xiàn)方式為接口或者抽象類,例如 MapFunction 、 FilterFunction 、 ReduceFunction 等。所

    2024年01月23日
    瀏覽(22)
  • Flink基礎(chǔ)之DataStream API

    union聯(lián)合:被unioin的流中的數(shù)據(jù)類型必須一致 connect連接:合并的兩條流的數(shù)據(jù)類型可以不一致 connec后,得到的是ConnectedStreams 合并后需要根據(jù)數(shù)據(jù)流是否經(jīng)過keyby分區(qū) coConnect: 將兩條數(shù)據(jù)流合并為同一數(shù)據(jù)類型 keyedConnect 目前所使用的大多數(shù)Sink, 都是基于2PC的方式來保證狀態(tài)

    2024年02月05日
    瀏覽(30)
  • Flink 讀寫MySQL數(shù)據(jù)(DataStream和Table API)

    Flink 讀寫MySQL數(shù)據(jù)(DataStream和Table API)

    Flink提供了基于JDBC的方式,可以將讀取到的數(shù)據(jù)寫入到MySQL中;本文通過兩種方式將數(shù)據(jù)下入到MySQL數(shù)據(jù)庫,其他的基于JDBC的數(shù)據(jù)庫類似,另外,Table API方式的Catalog指定為Hive Catalog方式,持久化DDL操作。 另外,JDBC 連接器允許使用 JDBC 驅(qū)動程序從任何關(guān)系數(shù)據(jù)庫讀取數(shù)據(jù)并將

    2023年04月09日
    瀏覽(32)
  • Flink DataStream API CDC同步MySQL數(shù)據(jù)到StarRocks

    Flink DataStream API CDC同步MySQL數(shù)據(jù)到StarRocks

    Flink:1.16.1 pom文件如下 Java代碼 SourceAndSinkInfo 類,用于定義source和sink的IP、端口、賬號、密碼信息 DataCenterShine實體類,字段與數(shù)據(jù)庫一一對應(yīng)。 StarRocksPrimary 實體類 FieldInfo注解類,用于標(biāo)記字段序號、是否為主鍵、是否為空,后續(xù)生成TableSchema需要使用到。 TableName 注解類,

    2024年02月03日
    瀏覽(32)
  • 大數(shù)據(jù)學(xué)習(xí)之Flink,10分鐘帶你初步了解Flink

    目錄 前摘 一、認(rèn)識Flink的Logo?編輯 二、了解Flink的起源 三、了解Flink的發(fā)展 四、明白Flink的定位 五、Flink主要的應(yīng)用場景 六、流式數(shù)據(jù)處理的發(fā)展和演變 1.?流處理和批處理 2. 傳統(tǒng)事務(wù)處理 2.1傳統(tǒng)事務(wù)處理架構(gòu)?編輯 3. 有狀態(tài)的流處理 4. Lambda 架構(gòu) 5. 新一代流處理器 七、

    2024年02月20日
    瀏覽(27)
  • Flink DataStream API詳解

    參考:https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/datastream_api.html Data Sources Source是程序讀取其輸入的位置,您可以使用 env.addSource(sourceFunction) 將Source附加到程序中。Flink內(nèi)置了許多預(yù)先實現(xiàn)的SourceFunction,但是您始終可以通過實現(xiàn)SourceFunction(non-parallel sources)來編寫自定

    2024年02月14日
    瀏覽(51)
  • Flink學(xué)習(xí)——DataStream API

    Flink學(xué)習(xí)——DataStream API

    ? ? ? ? 一個flink程序,其實就是對DataStream的各種轉(zhuǎn)換。具體可以分成以下幾個部分: 獲取執(zhí)行環(huán)境(Execution Environment) 讀取數(shù)據(jù)源(Source) 定義基于數(shù)據(jù)的轉(zhuǎn)換操作(Transformations) 定義計算結(jié)果的輸出位置(Sink) 觸發(fā)程序執(zhí)行(Execute) ? ? ? ? flink 程序可以在各種上

    2024年02月05日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包