[ 
https://issues.apache.org/jira/browse/SPARK-27077?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hyukjin Kwon resolved SPARK-27077.
----------------------------------
    Resolution: Not A Problem

> DataFrameReader and Number of Connection Limitation
> ---------------------------------------------------
>
>                 Key: SPARK-27077
>                 URL: https://issues.apache.org/jira/browse/SPARK-27077
>             Project: Spark
>          Issue Type: Bug
>          Components: Spark Core, SQL
>    Affects Versions: 2.3.2
>            Reporter: Paul Wu
>            Priority: Major
>
> I am not very sure this is a Spark core issue or a Vertica issue, however I 
> intended to think this is Spark's issue.  The problem is that when we try to 
> read with sparkSession.read.load from some datasource, in my case, Vertica 
> DB, the DataFrameReader needs to make some 'large' number of  initial  jdbc 
> connection requests. My account limits I can only use 16 (and I can see at 
> least 6 of them can be used for my loading), and when the "large" number of 
> the requests issued, I got exception below.  In fact, I can see eventually it 
> could settle with fewer numbers of connections (in my case 2 simultaneous 
> DataFrameReader). So I think we should have a parameter that prevents the 
> reader from sending out initial "bigger" number of connection requests than 
> user's limit. If we don't have this option parameter, my app could fail 
> randomly due to my Vertica account's number of connections allowed.
>  
> java.sql.SQLNonTransientConnectionException: [Vertica][VJDBC](7470) FATAL: 
> New session rejected because connection limit of 16 on database already met 
> for M21176
>          at com.vertica.util.ServerErrorData.buildException(Unknown Source)
>          at com.vertica.io.ProtocolStream.readStartupMessages(Unknown Source)
>          at com.vertica.io.ProtocolStream.initSession(Unknown Source)
>          at com.vertica.core.VConnection.tryConnect(Unknown Source)
>          at com.vertica.core.VConnection.connect(Unknown Source)
>          at com.vertica.jdbc.common.BaseConnectionFactory.doConnect(Unknown 
> Source)
>          at com.vertica.jdbc.common.AbstractDriver.connect(Unknown Source)
>          at java.sql.DriverManager.getConnection(DriverManager.java:664)
>          at java.sql.DriverManager.getConnection(DriverManager.java:208)
>          at 
> com.vertica.spark.datasource.VerticaDataSourceRDD$.resolveTable(VerticaRDD.scala:105)
>          at 
> com.vertica.spark.datasource.VerticaRelation.<init>(VerticaRelation.scala:34)
>          at 
> com.vertica.spark.datasource.DefaultSource.createRelation(VerticaSource.scala:47)
>          at 
> org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:341)
>          at 
> org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:239)
>          at 
> org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:227)
>          at 
> org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:164)
>          at 
> com.att.iqi.data.ConnectorPrepareHourlyDataRT$1.run(ConnectorPrepareHourlyDataRT.java:156)
>  Caused by: com.vertica.support.exceptions.NonTransientConnectionException: 
> [Vertica][VJDBC](7470) FATAL: New session rejected because connection limit 
> of 16 on databas                e already met for
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to