Flink實戰案例(十五) Flink的分布式快取

2021-10-16 17:58:48 字數 1234 閱讀 7431

《2023年最新版大資料面試題全面開啟更新》

flink提供了乙個分布式快取,類似於hadoop,可以使使用者在並行函式中很方便的讀取本地檔案,並把它放在taskmanager節點中,防止task重複拉取。

此快取的工作機制如下:程式註冊乙個檔案或者目錄(本地或者遠端檔案系統,例如hdfs或者s3),通過executionenvironment註冊快取檔案並為它起乙個名稱。

當程式執行,flink自動將檔案或者目錄複製到所有taskmanager節點的本地檔案系統,僅會執行一次。使用者可以通過這個指定的名稱查詢檔案或者目錄,然後從taskmanager節點的本地檔案系統訪問它。

在executionenvironment中註冊乙個檔案:

//獲取執行環境

executionenvironment env = executionenvironment.getexecutionenvironment();

//1:註冊乙個檔案,可以使用hdfs上的檔案 也可以是本地檔案進行測試

env.registercachedfile("/users/wangzhiwu/workspace/quickstart/text","a.txt");

//在使用者函式中訪問快取檔案或者目錄(這裡是乙個map函式)。這個函式必須繼承richfunction,因為它需要使用runtimecontext讀取資料:

datasetresult = data.map(new richmapfunction()

}@override

public string map(string value) throws exception

});result.printtoerr();

}

完整**如下,仔細看注釋:

public class discachetest 

}@override

public string map(string value) throws exception

});result.printtoerr();

}}//

輸出結果如下:

[hello, flink, hello, flink]:a

[hello, flink, hello, flink]:b

[hello, flink, hello, flink]:c

[hello, flink, hello, flink]:d

flink實戰 基本概念

基本概念 flink程式執行時包含兩個主要的程序,master和worker。主要分為 job client jobmanager taskmanager.master程序是job manager,協調和管理著程式的執行,主要職責 排程任務 管理checkpoints 故障恢復等 job manag...

Flink流處理之迭代案例

我們在學習flink時一般都離不開flink官網,而我們通常都要先學會 example apche的開源專案一般都會有這個目錄,今天就說一下flink的example中的流處理的迭代 官網流處理的迭代位址 首先。基於輸入流構建iterativestream。這是乙個迭代的起始。通常稱之為迭代頭 it...

Flink 專案案例實操01

專案詳情 基於實時計算,您可以輕鬆完成實時欺詐檢測系統。實時欺詐檢測系統能夠及時發現使用者高危行為並採取措施,降低損失。實時欺詐檢測 風控 系統流程如下 實時計算訂閱訊息佇列,過濾出感興趣的行為,比如 購買 領券 瀏覽等。實時計算計算把這個行為特徵化。實時計算通過udf呼叫外部乙個風險模型,判斷這次...