Spark对MongoDB的慢速读取-奇怪的任务分配
我有一个包含15个碎片的MongoDB 4.2集群;数据库存储6GB的分片集合(即每台机器大约400MB) 我正在尝试阅读ApacheSpark的整个系列,它运行在同一台机器上。Spark的应用程序使用Spark对MongoDB的慢速读取-奇怪的任务分配,mongodb,apache-spark,Mongodb,Apache Spark,我有一个包含15个碎片的MongoDB 4.2集群;数据库存储6GB的分片集合(即每台机器大约400MB) 我正在尝试阅读ApacheSpark的整个系列,它运行在同一台机器上。Spark的应用程序使用--num executors 8和--executor cores 6运行;通过配置MongoSharedPartitioner,可通过火花接头进行连接 除了阅读速度非常慢(大约1.5分钟;但是,据我所知,MongoDB上的完全扫描通常不好),我在Spark的任务分配中遇到了这种奇怪的行为:
--num executors 8
和--executor cores 6
运行;通过配置MongoSharedPartitioner,可通过火花接头进行连接
除了阅读速度非常慢(大约1.5分钟;但是,据我所知,MongoDB上的完全扫描通常不好),我在Spark的任务分配中遇到了这种奇怪的行为:
问题如下:
这些行为的原因是什么?谁负责(是Spark、Spark连接器还是MongoDB)?是否有一些配置参数可能导致这些问题?在您的情况下,似乎mongos是一个瓶颈,如果您可以将任务拆分为15个专用任务(每个碎片1个)并直接对碎片执行读取,可能会更快…有趣的观察。但这可能吗?从我在文档()中看到的内容来看,mongos还负责路由结果。。。(在任何情况下,我都可以尝试为mongos提供更多资源)这是可能的,但仅限于读取…RAM的数量和CPU的数量是多少?