簡體   English   中英

在spark中使用JDBC驅動程序限制到MySQL數據庫的連接數

[英]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.

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