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 應用層 對業務的處理...