7 Flink的分布式快取

2021-09-11 17:44:44 字數 1236 閱讀 9491

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的分布式快取

2021年最新版大資料面試題全面開啟更新 flink提供了乙個分布式快取,類似於hadoop,可以使使用者在並行函式中很方便的讀取本地檔案,並把它放在taskmanager節點中,防止task重複拉取。此快取的工作機制如下 程式註冊乙個檔案或者目錄 本地或者遠端檔案系統,例如hdfs或者s3 通過e...

分布式快取

分布式快取 原則來說跟應用伺服器分布式應該是一樣,但快取是有狀態的。怎麼樣提高命中?1.最原始的演算法 那就是key hash取模,取到伺服器ip。在大量伺服器伸縮行有問題,加入一台伺服器就有可能讓所有的快取都失效。如 key hash 後是100,取10膜是0,取11膜 1,101 取10膜是1,...

分布式快取

網際網路發展的同時,也引領者相關技術的發展與變革,比如集群 高併發 負載均衡 高可用 海量資料的處理 系統安全 分布式快取等各方面的相關技術。簡單談一下分布式快取技術。2 三層架構 1 web層 表現層 主要對使用者資料接收,以及資料處理完成後返回,為客戶端提 用程式的訪問 2 應用層 對業務的處理...