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

Flink源碼之TaskManager啟動流程

這篇具有很好參考價值的文章主要介紹了Flink源碼之TaskManager啟動流程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

從啟動命令flink-daemon.sh可以看出TaskManger入口類為org.apache.flink.runtime.taskexecutor.TaskManagerRunner

TaskManagerRunner::main
TaskManagerRunner::runTaskManagerProcessSecurely
TaskManagerRunner::runTaskManager //構造TaskManagerRunner并調用start()方法
TaskManagerRunner::new //核心

在TaskManagerRunner構造函數中,可以看出與JobManger類似,也是先構造出一些公共服務:

highAvailabilityServices//用于獲取JobManger的地址
rpcService //將TaskExecutor包裝為AkkaActor提供RPC服務
heartbeatServices //心跳服務,與JobManger通信
metricRegistry //metric服務,提供metric注冊和查詢
blobCacheService //緩存Blob

這些服務在構造TaskExecutor時作為構造函數參數傳入

構造TaskExecutor前會先構造TaskManagerServices輔助TaskExecutor實現(xiàn)其核心功能

TaskManagerRunner::createTaskExecutorService
TaskManagerRunner::startTaskManager // 構造MetricGroup和相關服務
TaskManagerServices.fromConfiguration//讀取TaskManger的配置信息啟動TaskManager相關服務
TaskExecutor::new  //核心

啟動TaskEexector后會與ResouceManager建立連接,將自身信息注冊到RM后發(fā)送Slot報告給RM,具體調用鏈路如下:

TaskManagerRunner::start
TaskExecutorToServiceAdapter::start
TaskExecutor::start
TaskExecutor::onStart
TaskExecutor::startTaskExecutorServices //獲取ResourceManager地址后與ResourceManager建立連接,發(fā)送Slot報告
ResourceManagerLeaderListener::notifyLeaderAddress
TaskExecutor::notifyOfNewResourceManagerLeader
TaskExecutor::reconnectToResourceManager
TaskExecutor::tryConnectToResourceManager
TaskExecutor::connectToResourceManager
TaskExecutorToResourceManagerConnection::start
RegisteredRpcConnection::start
RegisteredRpcConnection::createNewRegistration
TaskExecutorToResourceManagerConnection::generateRegistration
RetryingRegistration::startRegistration //與resourcemanager建立連接
RetryingRegistration::register
ResourceManagerRegistration::invokeRegistration //向ResourceManager注冊TaskExecutorRegistration信息
ResourceManagerGateway.registerTaskExecutor
TaskExecutorToResourceManagerConnection::onRegistrationSuccess
ResourceManagerRegistrationListener::onRegistrationSuccess
TaskExecutor::establishResourceManagerConnection 
    ResourceManagerGateway.sendSlotReport //發(fā)送自身slot信息給ResourceManager
    HeartbeatManagerImpl::monitorTarget//與RM建立心跳連接,當接到來自RM的心跳請求時,就會將SlotReport發(fā)送給RM作為心跳回應

TaskExecutor提供了以下兩個核心方法:

 //RM將Slot分配給JobMaster請求TM將具體Slot信息發(fā)送給JobMaster
  CompletableFuture<Acknowledge> requestSlot(
        SlotID slotId,
        JobID jobId,
        AllocationID allocationId,
        ResourceProfile resourceProfile,
        String targetAddress,
        ResourceManagerId resourceManagerId,
        @RpcTimeout Time timeout);
 
 //執(zhí)行JobMaster提交的物理Task       
CompletableFuture<Acknowledge> submitTask(
        TaskDeploymentDescriptor tdd, JobMasterId jobMasterId, @RpcTimeout Time timeout);    

TaskManager中管理Slot的實現(xiàn)類TaskSlotTableImpl,該實例記錄了Slot的分配信息。

Flink源碼之TaskManager啟動流程,BigData,flink,大數據

HeartBeat

在TaskExecutor構造函數中有兩個HeartbeatManager,實現(xiàn)類都是HeartbeatManagerImpl,此類是接受心跳請求,發(fā)送心跳響應:

ResourceManagerHeartbeatManager //響應RM的心跳請求,心跳響應中帶上SlotReport
JobManagerHeartbeatManager  //響應JobMaster的心跳請求, 心跳響應中帶上AccumulatorReport

調用HeartbeatManagerImpl.monitorTarget(ResourceID resourceID, HeartbeatTarget heartbeatTarget) 與目標對象建立心跳連接。

HeartbeatManager還有個實現(xiàn)類是HeartbeatManagerSenderImpl,用于主動向監(jiān)控目標發(fā)送心跳請求,比如在ResourceManager中創(chuàng)建的就是HeartbeatManagerSenderImpl,TaskManager啟動時向ResourceManager注冊后,RM就會調用HeartbeatManagerSenderImpl.monitor監(jiān)控TM, 并定時向TM的HeartbeatManagerImpl發(fā)送心跳請求。同樣,在JobMaster中創(chuàng)建的也是HeartbeatManagerSenderImpl,JobMaster定時向執(zhí)行當前Job的TM發(fā)送心跳請求,TM響應與該Job相關信息。

綜上,TM啟動后向RM注冊,與TM通過心跳信息同步Slot分配狀況,接受RM的Slot分配請求向JobMaster提供Slot后,就可以接受JobMaster 執(zhí)行具體的物理Task了。文章來源地址http://www.zghlxwxcb.cn/news/detail-640471.html

到了這里,關于Flink源碼之TaskManager啟動流程的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • Flink|《Flink 官方文檔 - 部署 - 內存配置 - 配置 TaskManager 內存》學習筆記

    Flink|《Flink 官方文檔 - 部署 - 內存配置 - 配置 TaskManager 內存》學習筆記

    學習文檔:Flink|《Flink 官方文檔 - 部署 - 內存配置 - 配置 TaskManager 內存》學習筆記 學習筆記如下: Flink JVM 進程的進程總內存(Total Process Memory)包含了由 Flink 應用使用的內存(Flink 總內存)以及由運行 Flink 的 JVM 使用的內存。其中,F(xiàn)link 總內存(Total Flink Memory)包括 JV

    2024年03月15日
    瀏覽(18)
  • 關于Flink,TaskManager日志問題的一個記錄

    疑問:不知道大家有和我一樣,開發(fā)完的flink代碼推送到flink集群上執(zhí)行的時候log.info(xxxx)打印的日志不會打印到task-manager節(jié)點上去(在IDEA上執(zhí)行可以打印日志到控制臺上),為此一直在困擾了,經過一系列的嘗試,終于在java和scala中實現(xiàn)log.info(xxx)打印到task-manager節(jié)點上。 java代

    2024年02月16日
    瀏覽(21)
  • flink任務的taskmanager失敗Heartbeat of TaskManager with id taskmanager-1-1 timed out.

    flink任務的taskmanager失敗Heartbeat of TaskManager with id taskmanager-1-1 timed out.

    flink任務上線運行 問題java.util.concurrent.TimeoutException:?Heartbeat?of?TaskManager?with?id?job-af2f94d0-59d7-4e51-aa55-dc91d1a264a8-taskmanager-1-1?timed?out. 報錯原因 分布式物理機網絡失聯(lián)。 Failover的節(jié)點對應Taskmanager的內存設置太小,垃圾回收機制會導致心跳超時。 解決方案 如果此問題出現(xiàn)的

    2024年02月14日
    瀏覽(15)
  • flink任務內存調優(yōu),TaskManager、JobManager內存配置

    flink任務內存調優(yōu),TaskManager、JobManager內存配置

    ????????Flink是基于java的JVM運行,擁有高效的數據處理能力,但是考慮到用戶在 Flink 上運行的應用的多樣性,盡管flink框架已經為所有配置項提供合理的默認值,仍無法滿足所有情況下的需求。 為了給用戶生產提供最大化的價值, Flink 允許用戶在整體上以及細粒度上對集

    2024年02月06日
    瀏覽(37)
  • flink源碼分析 - flink命令啟動分析

    flink版本: flink-1.12.1 源碼位置:? flink-dist/src/main/flink-bin/bin/flink flink命令源碼: 首先講第一段: 工作中,很多人喜歡用符號鏈接(軟連接)去將原始命令鏈接到一個新的文件。 例如:? 將 /home/aaa鏈接到/opt/soft/flink-1.12.1/bin/flink,? 實際使用的時候就可以用 aaa去代替flink命令。 例如

    2024年01月18日
    瀏覽(20)
  • 說說Flink on yarn的啟動流程

    說說Flink on yarn的啟動流程

    核心流程 FlinkYarnSessionCli 啟動的過程中首先會檢查Yarn上有沒有足夠的資源去啟動所需要的container,如果有,則 上傳一些flink的jar和配置文件到HDFS ,這里主要是啟動AM進程和TaskManager進程的相關依賴jar包和配置文件。 接著yarn client會首先向RM 申請一個container來作為ApplicationMas

    2024年02月10日
    瀏覽(26)
  • 深入理解 Flink(五)Flink Standalone 集群啟動源碼剖析

    深入理解 Flink(五)Flink Standalone 集群啟動源碼剖析

    深入理解 Flink 系列文章已完結,總共八篇文章,直達鏈接: 深入理解 Flink (一)Flink 架構設計原理 深入理解 Flink (二)Flink StateBackend 和 Checkpoint 容錯深入分析 深入理解 Flink (三)Flink 內核基礎設施源碼級原理詳解 深入理解 Flink (四)Flink Time+WaterMark+Window 深入分析 深入

    2024年02月02日
    瀏覽(32)
  • docker 部署flink和遇到webui 下taskmanager的無stdout 打印解決

    docker 部署flink和遇到webui 下taskmanager的無stdout 打印解決

    這個問題的解決辦法我網上參考了很多教程,在下面這個教程找到了一點思路 https://blog.csdn.net/Allocator/article/details/106858679 我跟他的情況稍有不一樣: 1. 他是log和stdout都沒有顯示,我是有l(wèi)og顯示但是沒有stdout顯示 2. flink 的版本不一樣,所以里面的一些腳本不太一致,按照他的

    2024年01月24日
    瀏覽(21)
  • Flink源碼之Checkpoint執(zhí)行流程

    Flink源碼之Checkpoint執(zhí)行流程

    Checkpoint完整流程如上圖所示: JobMaster的CheckpointCoordinator向所有SourceTask發(fā)送RPC觸發(fā)一次CheckPoint SourceTask向下游廣播CheckpointBarrier SouceTask完成狀態(tài)快照后向JobMaster發(fā)送快照結果 非SouceTask在Barrier對齊后完成狀態(tài)快照向JobMaster發(fā)送快照結果 JobMaster保存SubTask快照結果 JobMaster收到所

    2024年02月11日
    瀏覽(44)
  • Flink源碼之State創(chuàng)建流程

    Flink源碼之State創(chuàng)建流程

    StreamOperatorStateHandler 在StreamTask啟動初始化時通過StreamTaskStateInitializerImpl::streamOperatorStateContext會為每個StreamOperator 創(chuàng)建keyedStatedBackend和operatorStateBackend,在AbstractStreamOperator中有個StreamOperatorStateHandler成員變量,調用AbstractStreamOperator::initializeState方法中會初始化StreamOperatorStateH

    2024年02月12日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包