flink原理和基本功能是什么

flink原理和基本功能是什么,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

成都創(chuàng)新互聯(lián)公司從2013年成立,先為長洲等服務(wù)建站,長洲等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為長洲企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

有界與無界

有界數(shù)據(jù)集

  • 具有時間邊界的數(shù)據(jù)集,處理過程中數(shù)據(jù)一定會在某個時間內(nèi)開始和結(jié)束。

無界數(shù)據(jù)集

  • 數(shù)據(jù)只有開始沒有邊界。

flink接口結(jié)構(gòu)

FLink SQL

  • SQL API支持批和流的計(jì)算。

Flink Table

  • Table API將內(nèi)存中的DataStream和DataSet數(shù)據(jù)集在原有的基礎(chǔ)上增加Schema信息,將數(shù)據(jù)類型統(tǒng)一抽象成表結(jié)構(gòu),然后通過Table API接口處理對應(yīng)的數(shù)據(jù)集。

  • SQL API可以直接查詢Table API注冊表的數(shù)據(jù)。

  • Tabel API 提供大量接口如GroupByKey、Join等,并支持和DataStream和DataSet的相互轉(zhuǎn)換。

DataStream

  • 有編程經(jīng)驗(yàn)者使用,1.12版本開始DataStream處理流批數(shù)據(jù),DataSet接口逐步廢除。

Stateful Stream Processing API

  • Flink最底層接口,靈活性非常強(qiáng),可實(shí)現(xiàn)復(fù)雜的流式計(jì)算邏輯,使用成本較高,一般企業(yè)級用戶使用它進(jìn)行二次開發(fā)或深度封裝。

程序結(jié)構(gòu) DataStream API

  1. 設(shè)定運(yùn)行環(huán)境,支持動態(tài)(本地和線上)啟動、本地啟動、遠(yuǎn)程線上啟動三種。

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
//指定處理方式批處理、流處理、自適應(yīng)
env.setRuntimeMode(RuntimeExecutionMode.AUTOMATIC);
  1. 指定數(shù)據(jù)源

DataSet<String> text = env.readTextFile("/path/to/file");
  1. 操作數(shù)據(jù)集

DataSet<Tuple2<String, Integer>> counts =
        text.flatMap(_.toLowerCase.split(" ")) //實(shí)行map轉(zhuǎn)換
        .filter(_.nonEmpty)  //過濾控制
        .map((_,1)) //執(zhí)行map轉(zhuǎn)換,轉(zhuǎn)換為key-value 
        .keyBy(0)  //按照指定第一個字段key進(jìn)行分區(qū),
        .sum(1); //分區(qū)后按第二個字段求和
  1. 指定結(jié)果輸出

counts.writeAsCsv(outputPath, "\n", " ");
  1. 指定名稱并觸發(fā)

 env.execute("Streaming Count");

數(shù)據(jù)類型

  • flink有豐富的數(shù)據(jù)類型支持,統(tǒng)一由TypeInformation定義。支持與java、scala任意數(shù)據(jù)類型轉(zhuǎn)換。

原生數(shù)據(jù)類型

  • BasicTypeInfo類型支持任意java基礎(chǔ)類型和String類型。

java Tuples

  • TupleTypeInfo描述Tuple類型數(shù)據(jù),2019年版本支持字段上線為25個。

scala Case class

  • CaseClassTypeInfo支持任意Scala Case class,包括Scala tuples,2019年支持最大字段數(shù)為22個。

POJOs類型

  • PojoTypeInfo描述任意POJO類型,

    • POJO類必須是public修飾的非內(nèi)部類。

    • POJO類必須含有默認(rèn)空構(gòu)造器

    • PoJO類所有字段必須是public,類型必須是flink支持的。

Flink Value類型

  • Value數(shù)據(jù)類型實(shí)現(xiàn)了org.apache.flink.types.Value,其中包含read()和write()兩種序列化和反序列化操作。目前內(nèi)建類型有IntValue、DoubleValue、StringValue。

特殊數(shù)據(jù)類型

  • scala中的List、Map、Either、Option、Try,java中Either,hadoop中Writable。

Flink作為新一代計(jì)算引擎,在實(shí)時計(jì)算領(lǐng)域有著及其重要的地位,同時也有這復(fù)雜的概念,時間窗口、水位線等,學(xué)習(xí)并理解成本不低。

看完上述內(nèi)容,你們掌握flink原理和基本功能是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

分享名稱:flink原理和基本功能是什么
文章分享:http://muchs.cn/article18/jopidp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、域名注冊、網(wǎng)頁設(shè)計(jì)公司、移動網(wǎng)站建設(shè)、電子商務(wù)、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)