Gow*_*n V 2 apache-spark apache-spark-sql
我们使用 Apache Spark 每 2 小时执行一次 ETL。
有时Spark在执行读/写操作时会给数据库带来很大的压力。
对于Spark Streaming,我可以backpressure在kafka上看到配置。
有没有办法在批处理中处理这个问题?
背压实际上只是一个花哨的词,指的是设置最大接收速率。所以实际上它并不像你想象的那样工作。
这里要做的事情其实是在阅读端。
现在,在经典的 JDBC 使用中,jdbc 连接器具有sfetchSize属性PreparedStatement。因此,基本上您可以考虑根据以下答案中的内容配置 fetchSize :
不幸的是,这可能无法解决RDBMS.
您必须知道的是,与在单个工作程序上运行的基本 jdbc reader 相比,当使用整数列或使用谓词序列对数据进行分区时,以分布式模式加载数据但会引入一些问题。在您的情况下,大量并发读取很容易限制数据库。
为了解决这个问题,我建议如下:
如果您想了解更多有关使用 JDBC 源读取数据的信息,我建议您阅读以下内容:
免责声明:我是该存储库的共同作者。
| 归档时间: |
|
| 查看次数: |
732 次 |
| 最近记录: |