SparkSQL JDBC编写器失败"无法获取锁定错误"

时间:2017-12-02 05:14:39

标签: hive apache-spark-sql sql-server-2016 apache-spark-1.6 spark-jdbc

我尝试使用SparkSQL JDBC Writer将hive表中的5000万行插入到SQLServer表中.Below是我用来插入数据的代码行

mdf1.coalesce(4).write.mode(SaveMode.Append).jdbc(connectionString," dbo.TEST_TABLE",connectionProperties)

处理1000万行后,火花作业失败并出现以下错误

java.sql.BatchUpdateException:SQL Server数据库引擎的实例此时无法获取LOCK资源。当活跃用户较少时,重新运行您的语句。请数据库管理员检查此实例的锁定和内存配置,或检查长时间运行的事务。

但如果我使用下面的代码行,同样的工作就会成功。

mdf1.coalesce(1).write.mode(SaveMode.Append).jdbc(connectionString," dbo.TEST_TABLE",connectionProperties)

我尝试打开与SQLServer的4个并行连接以优化性能。但是这项工作一直在失败,因为"无法获得锁定错误"处理完1000万行后。此外,如果我将数据帧限制为几百万行(少于1000万行),即使有四个并行连接,作业也会成功

有人建议我是否可以使用SparkSQL将大量数据导出到RDBMS中,如果我需要在SQL服务器表上进行任何配置更改。

先谢谢。

0 个答案:

没有答案