我有一個共享集群,它被資料塊上的多個作業使用。當我啟動作業的執行時,未使用與作業對應的 jar 的更新,在集群上,我看到它使用的是舊版本的 jar。
澄清一下,我通過 API 2.0 在 databricks 中發布 jar。
我的問題是為什么當我開始執行我的作業時,集群上的執行總是使用舊版本。謝謝你的幫助
uj5u.com熱心網友回復:
只有當它終止時,舊 jar 才會從集群中洗掉。如果您有一個永不終止的共享集群,那么它就不會發生。這不是 Databricks 的限制,而是 Java 無法卸載已經在使用的類(或者很難可靠地實作)的限制。
在大多數情況下,實際上不建議使用共享集群,原因如下:
- 它的成本要高得多(~4x)
- 從性能的角度來看,任務相互影響
- 依賴沖突的可能性很高 無法在不影響其他任務的情況下更新庫
- 驅動節點上收集了一種“垃圾”
- ...
如果您使用共享集群來獲得更快的執行速度,我建議您查看Instance Pools,尤其是結合將 Databricks Runtime 預加載到實體池中的節點上。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/429921.html
