問題
Spark作業失敗,提示錯誤信息java.lang.IllegalStateException:連接池關閉當試圖將數據寫入S3上的Delta表時。
導致
寫入S3的Spark作業被限製為同時連接的最大數量。的java.lang.IllegalStateException:連接池關閉當此連接池耗盡時發生。
解決方案
客戶機連接池由fs.s3a.connection.maximum價值。這定義了到S3的最大同時連接數。缺省值為200。屬性中設置更高的值,可以增加客戶端連接池的大小火花配置屬性。
Databricks建議將最大連接數設置為集群中核心總數的倍數。例如,如果您正在使用32核集群,您應該嚐試設置fs.s3a.connection.maximum值為320或352。
一旦最大連接數設置得足夠高,則java.lang.IllegalStateException:連接池關閉將不再發生。