簡體   English   中英

使用RestClusterClient在Flink群集上運行已部署的作業

[英]Run already deployed job on Flink Cluster using RestClusterClient

我正在嘗試使用Rest請求在Flink Cluster上運行已部署的作業。

我使用一個簡單的休息客戶端就成功了

POST http://localhost:8081/v1/jars/13775a71-0723-4c62-979b-7e9a9de3a0dc_some.jar/run { "programArgsList" : ["test1", "test2"] }

但是我想用Java來做,因為已經有了RestClusterClient,所以我很樂意使用它,但是它的文檔很少

https://ci.apache.org/projects/flink/flink-docs-master/api/java/org/apache/flink/client/program/rest/RestClusterClient.html

從我從代碼中看到的情況來看,此RestClusterClient似乎沒有這種可能性

看起來它似乎完全遵循CLI中實現的功能,並在此處進行了記錄, 網址為https://ci.apache.org/projects/flink/flink-docs-stable/ops/cli.html,因此任何run命令都需要將jar與作業一起傳遞。

不可能與此客戶端一起運行已部署的作業。 我對嗎?

Flink的群集REST API旨在與任何REST客戶端一起使用。 RestClusterClient附帶了flink-clients模塊供內部使用。 但是,您也可以通過使用正確設置的Flink Configuration實例化它來直接使用它。

Configuration用於檢索群集REST端點。 因此,如果您配置了錯誤的REST地址或錯誤的HA模式,則RestClusterClient可能無法與群集通信。 如果您知道用來啟動集群的flink-conf.yaml在哪里,那么我建議使用GlobalConfiguration#loadConfiguration(configurationDirectory)加載它。 這應該為您提供一個良好的起點。

一旦啟動RestClusterClient您就可以通過

  • submitJob :提交新作業(僅在部署了會話集群的情況下才受支持)
  • requestJobResult :作業執行的結果; 如果是流作業,則可能永遠無法完成
  • cancel :取消給定的工作
  • triggerSavepoint :觸發​​保存點並返回其路徑
  • listJobs :列出集群上所有當前正在運行的作業
  • 還有更多電話

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM