[英]Limit number of connection to MySQL database using JDBC driver in spark
我目前正在使用 pyspark 中的以下命令使用 JDBC 驅動程序將數據從 MySQL 數據庫導入 spark:
dataframe_mysql = sqlctx
.read
.format("jdbc")
.option("url", "jdbc:mysql://<IP-ADDRESS>:3306/<DATABASE>")
.option("driver", "com.mysql.jdbc.Driver")
.option("dbtable", "<TABLE>")
.option("user", "<USER>")
.option("password","<PASSWORD>")
.load()
當我運行 spark 作業時,我收到以下錯誤消息:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException(連接過多)。
似乎由於多個節點正在嘗試同時連接到數據庫,我超出了MySQL 的連接限制 (151) ,這導致我的工作運行速度變慢。
如何限制 JDBC 驅動程序在 pyspark 中使用的連接數? 任何幫助都會很棒!
嘗試使用numPartitions參數。 根據文檔,它是可用於表讀寫並行的最大分區數。 這也決定了並發 JDBC 連接的最大數量。 如果要寫入的分區數超過此限制,則在寫入前調用 coalesce(numPartitions) 會減少此限制。
我想您應該減少默認分區大小,或減少執行程序的數量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.