取消
顯示的結果
而不是尋找
你的意思是:

在集群上自定義庫的多個版本

priyak
新的貢獻者三世

使用install_libraries API,我安裝一個定製的Python whl集群文件上運行。對於某些類型的請求,我們有一個要求安裝不同版本的相同的自定義whl文件運行集群。我的問題是,卸載之前的版本沒有生效,直到重新啟動集群。所以當我安裝新版本的庫,有沒有辦法讓我強迫集群使用的“新安裝的版本”而不是“卸載,等待重新啟動”版本嗎?

1接受解決方案

接受的解決方案

匿名
不適用

@Priya凱西:

當你安裝一個自定義庫使用install_libraries API在磚,工人節點上安裝的版本是緩存,直到重新啟動集群。卸載圖書館將從緩存中刪除它,但它仍然會被加載到內存中運行的任何任務,直到重新啟動集群。

迫使集群使用的新安裝的版本庫,你可以嚐試一些選項:

  1. 使用一個新的集群:您可以創建一個新的集群和集群上安裝新版本的庫。通過這種方式,您可以確保使用圖書館的新版本與舊版本沒有任何衝突。
  2. 重新加載模塊:如果您已經安裝了新版本的庫和希望開始使用它在你的代碼而不需要重新啟動集群,你可以嚐試重新加載該模塊使用importlib.reload ()。這將重新加載模塊和使用新版本的庫。
  3. 重新啟動Python解釋器:你也可以嚐試重新啟動Python解釋器使用os.execv()函數。這將啟動Python解釋器和加載新版本的庫。

然而,請記住,這些選項可能有一些限製和風險取決於你的用例。例如,重新加載模塊或重新啟動Python解釋器可能會引起一些矛盾或衝突與現有的任務在集群上運行。此外,創建一個新的集群可能會增加你的整體成本和可能不是可行的所有用例。

在原帖子查看解決方案

7回複7

匿名
不適用

@Priya凱西:

當你安裝一個自定義庫使用install_libraries API在磚,工人節點上安裝的版本是緩存,直到重新啟動集群。卸載圖書館將從緩存中刪除它,但它仍然會被加載到內存中運行的任何任務,直到重新啟動集群。

迫使集群使用的新安裝的版本庫,你可以嚐試一些選項:

  1. 使用一個新的集群:您可以創建一個新的集群和集群上安裝新版本的庫。通過這種方式,您可以確保使用圖書館的新版本與舊版本沒有任何衝突。
  2. 重新加載模塊:如果您已經安裝了新版本的庫和希望開始使用它在你的代碼而不需要重新啟動集群,你可以嚐試重新加載該模塊使用importlib.reload ()。這將重新加載模塊和使用新版本的庫。
  3. 重新啟動Python解釋器:你也可以嚐試重新啟動Python解釋器使用os.execv()函數。這將啟動Python解釋器和加載新版本的庫。

然而,請記住,這些選項可能有一些限製和風險取決於你的用例。例如,重新加載模塊或重新啟動Python解釋器可能會引起一些矛盾或衝突與現有的任務在集群上運行。此外,創建一個新的集群可能會增加你的整體成本和可能不是可行的所有用例。

priyak
新的貢獻者三世

謝謝你的回應。有什麼辦法緩解選項2和3的風險?是否可以檢查現有的任務是否完成,集群是一個空閑狀態之前我們嚐試重新加載模塊/重新啟動解釋器?

priyak
新的貢獻者三世

@Suteja卡努裏人思想上麵的問題嗎?

匿名
不適用

@Priya凱西:

是的,有一些方法可以減輕選項2和3的風險:

  1. 減輕風險的使用選項2(重新加載模塊),你可以試著限製模塊加載到一個特定的範圍的一部分,你的代碼沒有任何正在運行的任務,使用舊版本的庫。例如,您可以使用一個try-except塊捕獲可能提出的任何異常,在加載過程中,然後重試操作後,集群是空閑的。
  2. 減輕風險的使用選項3(重新啟動Python解釋器),你可以試著安排重啟維護窗口期間當沒有任務在集群上運行。您還可以使用類似的try-except塊在選項2捕獲可能提出的任何異常,在啟動過程中,然後重試操作後,集群是空閑的。

關於你提到的第二個問題,可以檢查現有的任務是否完成,集群空閑之前重新加載模塊或重新啟動解釋器。這樣做的方法之一是通過監測活動任務數和集群利用率使用磚REST API或磚CLI。還可以使用API磚工作計劃模塊重新加載或解釋器重啟在特定的時間窗口在沒有任務在集群上運行。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map