Apache spark 组合多个Rocksdb数据库

Apache spark 组合多个Rocksdb数据库,apache-spark,rocksdb,distributed-database,rocksdb-java,Apache Spark,Rocksdb,Distributed Database,Rocksdb Java,有一个用例我必须阅读巨大的拼花文件并转换成Rocksdb二进制文件,所以我决定使用spark(因为我的团队中每个人都熟悉它) 从Rocksdb的角度来看,我知道它不是分布式的,也不能并行化 因此,我所做的是为每个任务使用Spark并行地创建了多个Rocksdb实例 现在我想把它们结合起来。所以我的问题是,是否可以使用一些后处理将Rocksdb的多个实例组合在一起创建一个大的Rocksdb实例?为什么不在驱动程序上执行collectPartitions()或ToLocalitator()并处理每

有一个用例我必须阅读巨大的拼花文件并转换成Rocksdb二进制文件,所以我决定使用spark(因为我的团队中每个人都熟悉它)

从Rocksdb的角度来看,我知道它不是分布式的,也不能并行化

因此,我所做的是为每个任务使用Spark并行地创建了多个Rocksdb实例


现在我想把它们结合起来。所以我的问题是,是否可以使用一些后处理将Rocksdb的多个实例组合在一起创建一个大的Rocksdb实例?

为什么不在驱动程序上执行collectPartitions()或ToLocalitator()并处理每个分区?是的,它不会是并行执行,但您将得到一个整合的数据库

还有。。。更新。。。您可以在每个执行器上使用SSTFileWriter作为hadoopOutputFileFormat的变体。。rocksdb支持读取sst文件。。。。这是上面的自述


是的,可以这样做,但问题是数据非常庞大,我们无法将所有数据收集到驾驶员端,处理过程将花费大量时间,因为只有一台机器(驾驶员)负责整个处理过程。我们在这里谈论的数据有多大?尝试通过执行重新分区来平衡分区,然后确保在插入数据库时执行收集分区并执行批处理更新。另一种方法是将其托管在远程服务器上,然后执行http远程插入。这将需要额外的infra开销,但是可行的。rocksdb实例有多大?您在下面说过“数据非常庞大,我们无法将所有数据收集到驱动端”,所以您没有回答您的问题“是否可以将多个Rocksdb实例组合在一起创建一个大的Rocksdb实例”吗?是的@JacekLaskowski这是正确的,但它可以驻留在一台具有1TB左右SSD的机器中。问题不在于,我只是想办法让我的处理过程并行化。自从有人提出估算(现在是多次)以来,已经有一段时间了。我们能知道一个数字吗。还有系统配置,如cpu、内存、spark磁盘以及实际使用rocksdb的节点。